Начало » Использование СУБД » Firebird, HQbird, InterBase » Ненужные сканы записей при rows
Ненужные сканы записей при rows [сообщение #5911] |
Fri, 21 February 2025 12:49  |
marcodor
Сообщений: 8 Зарегистрирован: June 2022
|
Junior Member |
|
|
Добрый день,
Имеем такой запрос:
select
b.id, b.fdate,
c.code, c.name
from ta_bundle b
left join ta_entity c on (c.id = b.entity_id)
rows 1000 to 1010
План выполнения:
Select Expression
-> First N Records
-> Skip N Records
-> Nested Loop Join (outer)
-> Table "TA_BUNDLE" as "B" Full Scan
-> Filter
-> Table "TA_ENTITY" as "C" Access By ID
-> Bitmap
-> Index "PK_TA_ENTITY" Unique Scan
Сканы записей из таблиц:
TA_BUNDLE - 1010
TA_ENTITY - 1010
Хочется чтобы при больших таблицах и скипов движок читал только нужные 10 записей из TA_ENTITY, а не все 1010.
Через lateral то же самое получается:
select
b.id, b.fdate,
c.code, c.name
from ta_bundle b
left join lateral (
select c.code, c.name
from ta_entity c
where c.id = b.entity_id) c on true
rows 1000 to 1010
Работает хорошо только когда подзапрос:
select
b.id, b.fdate,
-- ? c.code
(select c.name from ta_entity c where c.id = b.entity_id)
from ta_bundle b
rows 1000 to 1010
Но так больше одного поля не вытянуть из другой таблицы.
Можно как-то по другому сформировать запрос чтобы движок оптимально сканировал записи?
Тестирую с FB 5.0.1
|
|
|
 |
|
Ненужные сканы записей при rows
От: marcodor - Fri, 21 February 2025 12:49
|
 |
|
Re: Ненужные сканы записей при rows
От: marcodor - Fri, 21 February 2025 14:27
|
 |
|
Re: Ненужные сканы записей при rows
От: SD - Fri, 21 February 2025 14:38
|
 |
|
Re: Ненужные сканы записей при rows
От: marcodor - Fri, 21 February 2025 14:52
|
 |
|
Re: Ненужные сканы записей при rows
От: SD - Sat, 22 February 2025 00:59
|
 |
|
Re: Ненужные сканы записей при rows
От: marcodor - Mon, 24 February 2025 12:49
|
 |
|
Re: Ненужные сканы записей при rows
От: SD - Mon, 24 February 2025 15:42
|
 |
|
Re: Ненужные сканы записей при rows
От: marcodor - Mon, 24 February 2025 18:09
|
 |
|
Re: Ненужные сканы записей при rows
От: sim_84 - Tue, 25 February 2025 09:28
|
 |
|
Re: Ненужные сканы записей при rows
От: marcodor - Tue, 25 February 2025 09:56
|
 |
|
Re: Ненужные сканы записей при rows
От: pastor - Tue, 25 February 2025 10:22
|
 |
|
Re: Ненужные сканы записей при rows
От: sim_84 - Tue, 25 February 2025 13:59
|
 |
|
Re: Ненужные сканы записей при rows
От: basid - Tue, 25 February 2025 17:58
|
 |
|
Re: Ненужные сканы записей при rows
От: pastor - Wed, 26 February 2025 07:58
|
 |
|
Re: Ненужные сканы записей при rows
От: sim_84 - Wed, 26 February 2025 09:23
|
 |
|
Re: Ненужные сканы записей при rows
От: pastor - Wed, 26 February 2025 09:27
|
 |
|
Re: Ненужные сканы записей при rows
От: basid - Wed, 26 February 2025 10:05
|
 |
|
Re: Ненужные сканы записей при rows
От: kdv - Wed, 26 February 2025 14:51
|
 |
|
Re: Ненужные сканы записей при rows
От: avp - Fri, 28 February 2025 20:10
|
 |
|
Re: Ненужные сканы записей при rows
От: sim_84 - Mon, 03 March 2025 10:07
|
 |
|
Re: Ненужные сканы записей при rows
От: SD - Mon, 03 March 2025 15:35
|
 |
|
Re: Ненужные сканы записей при rows
От: sim_84 - Mon, 03 March 2025 21:03
|
 |
|
Re: Ненужные сканы записей при rows
От: marcodor - Thu, 27 February 2025 20:45
|
 |
|
Re: Ненужные сканы записей при rows
От: SD - Fri, 28 February 2025 01:26
|
 |
|
Re: Ненужные сканы записей при rows
От: avp - Fri, 28 February 2025 20:05
|
Переход к форуму:
Текущее время: Mon Mar 31 13:43:29 GMT+3 2025
Общее время, затраченное на создание страницы: 0.01221 секунд
|