これにSybaseASE15を使用する-定期的にテーブルから削除する行が約大量(最大10 mil)ありますが、テーブルに追加された最新のデータの選択を保持したいので、ルールテーブル上で直接切り捨てを使用します。
delete from master_table where...
上記の削除の使用は非常に遅いので、私の戦略は、保持したいデータを一時テーブルに移動し、マスターテーブルを切り捨てて、データを一時テーブルから再度移動することです。
1) select * into #temp_table from master_table where date_updated > dateadd(mi, -15, getdate()) and node_type != 'X'
2) truncate table master_table
3) insert into master_table select * from #temp_table
これでほぼ十分です。1と2のパフォーマンスは優れていますが、マスターへの挿入が遅すぎます。
したがって、私の質問は、次のいずれかをすばやく実行する方法があるかどうかに要約されます。
delete from master_table where...
insert into xyz select * from...
または、私は別のアプローチを受け入れています!