Я относительно новичок в SQL. У меня есть сценарий, который работал очень быстро (< 0,5 секунды), но работает очень медленно (> 120 секунд), если я добавлю одно изменение - и я не понимаю, почему это изменение имеет такое значение. Любая помощь была бы чрезвычайно оценена!SQL-скрипт работает очень медленно с небольшим изменением
Это сценарий, и он работает быстро, если я не включаю «tt2.bulk_cnt » в строке 26:
with bulksum1 as
(
select t1.membercode,
t1.schemecode,
t1.transdate
from mina_raw2 t1
where t1.transactiontype in ('RSP','SP','UNTV','ASTR','CN','TVIN','UCON','TRAS')
group by t1.membercode,
t1.schemecode,
t1.transdate
),
bulksum2 as
(
select t1.schemecode,
t1.transdate,
count(*) as bulk_cnt
from bulksum1 t1
group by t1.schemecode,
t1.transdate
having count(*) >= 10
),
results as
(
select t1.*, tt2.bulk_cnt
from mina_raw2 t1
inner join bulksum2 tt2
on t1.schemecode = tt2.schemecode and t1.transdate = tt2.transdate
where t1.transactiontype in ('RSP','SP','UNTV','ASTR','CN','TVIN','UCON','TRAS')
)
select * from results
EDIT: Я извиняюсь за не прикладывая достаточно подробно здесь ранее - хотя я могу используйте базовый код SQL, я полный новичок, когда дело доходит до баз данных.
База данных: Oracle (я не уверен, какая версия, извините)
планов выполнения:
БЫСТРЫЙ запрос:
Plan hash value: 1712123489
---------------------------------------------
| Id | Operation | Name |
---------------------------------------------
| 0 | SELECT STATEMENT | |
| 1 | HASH JOIN | |
| 2 | VIEW | |
| 3 | FILTER | |
| 4 | HASH GROUP BY | |
| 5 | VIEW | VM_NWVW_0 |
| 6 | HASH GROUP BY | |
| 7 | TABLE ACCESS FULL| MINA_RAW2 |
| 8 | TABLE ACCESS FULL | MINA_RAW2 |
---------------------------------------------
SLOW запрос:
Plan hash value: 1298175315
--------------------------------------------
| Id | Operation | Name |
--------------------------------------------
| 0 | SELECT STATEMENT | |
| 1 | FILTER | |
| 2 | HASH GROUP BY | |
| 3 | HASH JOIN | |
| 4 | VIEW | VM_NWVW_0 |
| 5 | HASH GROUP BY | |
| 6 | TABLE ACCESS FULL| MINA_RAW2 |
| 7 | TABLE ACCESS FULL | MINA_RAW2 |
--------------------------------------------
Какая платформа базы данных? – OldProgrammer
Вы присоединяетесь к индексированным полям? –
Вы сравнили план выполнения для двух запросов? – CodeReaper