私たちの生産データベースにテーブルがあります。 それはサイズarround 220ギガビット ここで指定された次のクエリを実行しているとき ダミーのシナリオで多くの時間がかかります。 以下のクエリの時間を短縮できますか?実行時間が非常に長く、それを減らす方法
ヘルプは高く評価されます。
DELETE FROM testcpy1_bkp
WHERE (num, dt, cd) IN ( SELECT num, dt, 899
FROM testcpy1_bkp
GROUP BY num, dt
HAVING MAX (cd) != 899 OR MIN (cd) != 899)
OR ( (num, dt, cd) IN
( SELECT num, dt, MAX (cd)
FROM testcpy1_bkp
GROUP BY num, dt
HAVING MAX (cd) = 899 AND MIN (cd) = 899)
AND ROWID NOT IN ( SELECT MIN (ROWID)
FROM testcpy1_bkp
GROUP BY num, dt
HAVING MAX (cd) = 899 AND MIN (cd) = 899));
DELETE FROM testcpy1_bkp t1
WHERE ROWID NOT IN
(SELECT MAX (ROWID)
FROM testcpy1_bkp t2
WHERE t1.num = t2.num AND t1.dt = T2.DT AND t1.cd = t2.cd);
*ディスク上のテーブルのサイズ*は有用なメトリックではありません。一方、*行数は*です。また、フィルタリング条件を満たす行の数。どのようなインデックスがありますか?実行計画とは何ですか?クエリチューニングはすべて詳細についてです。他のいくつかの[クエリ最適化についての質問](https://stackoverflow.com/questions/tagged/oracle+query-optimization)を読んだら、あなたの質問がなぜ現在の形で答えることができないのかを理解し始めるべきです。 – APC
この問題を解決できましたか? – dybzon