0
からレコードを挿入する際に、レコードをコミットすると、私がしている:は、SQLクエリは次のように我々は他のテーブル
insert into dedupunclear
select mdnnumber,poivalue
from deduporiginal a
where exists (
select 1
from deduporiginal
where mdnnumber=a.mdnnumber and rowid<a.rowid)
or mdnnumber is null;
私deduporiginalで500Kの記録があります。私は関数内にこのクエリを入れましたが、それはdedupunclearテーブルにレコードをコミットするために約3時間かかります。
パフォーマンス上の問題を解決する方法はありますか?
このクエリがレコードをコミットすると、ある間隔で、またはselect
クエリからすべての結果を取得した後で、
すでにコミットされている部分的な結果からデータをクリーンアップすることはどれくらい難しいでしょうか? – Thilo
@chetan - クエリプランを投稿できますか?テーブルの統計は正確ですか? 'mdnnumber'カラムにインデックスがありますか?そのクエリを実行するために3時間近くかかることはありません(または、重複行を削除する単一の 'DELETE'文を実行する必要があります)。だから私はあなたの統計が誤解を招いていることを意味する恐ろしい計画があると思われる傾向があります。 –
それは私のせいでした。他の重いOracleプロセスがサーバーにロードされました。クエリが完璧であるか、それとも何か別の選択肢がありますか? – chetan