テーブルから8000万以上の行を削除するより良い方法はありますか?テーブルから8000万以上の行を削除するより良い方法はありますか?
WHILE EXISTS (SELECT TOP 1 * FROM large_table)
BEGIN
WITH LT AS
(
SELECT TOP 60000 *
FROM large_table
)
DELETE FROM LT
END
これが大きくなりすぎるから、私のトランザクションログを維持する仕事をしていませんが、私は、このプロセスはより速く行くようにする方法があるかどうかを知る必要がありますか?私は今、このスクリプトを実行している5日間以上のコンピュータを持っていましたが、私は非常に遠くない、非常に高速でした。
は、あなただけの[ 'TRUNCATE'](https://docs.microsoft.com/en-us/sql/t-sql/statements/truncate-table-transact-sql)を使用することができませんか?すべての行を削除していますか? – Rokuto
Aaron Bertrandによってこの記事が見つかるかもしれません:[大規模な削除操作をチャンクに分割](https://sqlperformance.com/2013/03/io-subsystem/chunk-deletes) –
5日以上?!?!あなたのテーブルにトリガーがありますか?これはあなたのトースターで実行されていますか? – Milney