私は比較的新しいSQLです。私は非常に迅速に実行する(< 0.5秒)が、1つの変更を追加すると非常にゆっくり(> 120秒)実行されたスクリプトがあります - そして、なぜこの変更がそのような違いをもたらすのか分かりません。どんな助けでも大いに感謝します!小さな変更でSQLスクリプトが非常に遅く実行される
これはスクリプトであると私はライン26で「tt2.bulk_cnt 」を含めない場合、それはすぐに実行されます。
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
編集:私は以前ここに十分な詳細を入れないために謝罪 - 私はできますが基本的なSQLコードを使用して、私はデータベースについては完全な初心者です。
データベース:オラクル(私はわからないんだけどごめんバージョン、)
実行計画:
QUICKクエリ:
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
インデックスフィールドに参加していますか? –
2つのクエリの実行計画を比較しましたか? – CodeReaper