【解決方法】SQL クエリをより効率的な方法で更新する


ID、名前、給与、および指定の4つの列を持つ従業員テーブルがあります。

このテーブルには 2500 万のレコードがあり、給与 > 25k の条件に基づいて指定列を更新したかった

更新クエリを作成する代わりに、より効率的な方法でテーブルを更新するにはどうすればよいですか

更新クエリを書き込むと、トランザクション ログがいっぱいになり、時間がかかります

私が試したこと:

従業員セット Design=’SSA を更新します。ここで、給与 >25

解決策 1

更新クエリを作成するしかありません。

トランザクション ログで考えられる問題は、それが存在するドライブがいっぱいであるか、ほぼいっぱいになっていることです。 これを修正するには、トランザクション ログを少しメンテナンスする必要があります。

SQL Server トランザクション ログがいっぱい – Google 検索[^]

解決策 2

大量のデータを更新する場合、最適化する方法があります。
1. update ステートメントを一括挿入ステートメントに置き換えます。
2. 更新列のインデックスがあれば削除します。 更新が完了すると、インデックスを作成できます。
3. トリガーを削除すると更新が極端に遅くなり、更新があれば無効にします。
update ステートメントの実行計画も確認でき、速度が低下している理由を確認できます。

お役に立てれば。

コメント

タイトルとURLをコピーしました