ホームページ > データベース > mysql チュートリアル > SQL Server 2008 でバッチ削除を最適化するにはどうすればよいですか?

SQL Server 2008 でバッチ削除を最適化するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-03 02:43:38
オリジナル
251 人が閲覧しました

How Can I Optimize Batch Deletes in SQL Server 2008?

SQL Server 2008 のバッチ削除の最適化

SQL Server では、一括コピー (bcp) のような一括操作により、効率的なデータ操作手法が提供されます。ただし、同様の一括削除機能が利用できるかどうかという疑問が生じます。

クエリ:

SQL Server での一括削除の解決策はありますか?

TRUNCATE は選択的削除には使用できないため、WHERE 句が必要になります。データを一括削除するための bcp の代替手段はありますか?

答え:

いいえ、SQL Server は特殊な一括削除操作を提供しません。ただし、バッチ削除を最適化する方法はいくつかあります。

@@ROWCOUNT を使用したバッチ削除:

SELECT 'Starting' --sets @@ROWCOUNT
WHILE @@ROWCOUNT <> 0
    DELETE TOP (xxx) MyTable WHERE ...
ログイン後にコピー

このクエリは、'xxx' のバッチで DELETE ステートメントを実行します。

Truncateおよび挿入メソッド:

SELECT col1, col2, ... INTO #Holdingtable
           FROM MyTable WHERE ..opposite condition..
TRUNCATE TABLE MyTable
INSERT MyTable (col1, col2, ...)
           SELECT col1, col2, ... FROM #Holdingtable
ログイン後にコピー

この手法は、高い割合の行を削除する必要がある場合に効果的です。保持する行を含む一時テーブルを作成し、元のテーブルを切り捨て、保持した行をテーブルに挿入し直します。

以上がSQL Server 2008 でバッチ削除を最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート