これが私のシナリオです:
テーブルから特定の行セット (約 30,000 行) を削除し、ほぼ同じ量の行を挿入する単純なストアド プロシージャがあります。通常、これには数秒しかかかりません。ただし、テーブルには挿入/削除を監視するトリガーがあり、別のサーバーのリンクされたテーブルに何が起こったかを模倣しようとします。
このプロセスは、トリガーのために非常に遅く、このプロセス中にテーブルもロックされます。だからここに私の2つの質問があります:
- スローダウンのかなりの部分は、トランザクション ログによるものだと思います。ストアド プロシージャで、プロシージャの内容をログに記録しないように指定する方法はありますか?
- プロセス全体でテーブルをロックせずに「DELETE FROM」および「INSERT INTO」コマンドを実行する方法はありますか?
ありがとう!
編集- 回答ありがとうございます。私はそれが事実であると考えました(上記のいずれも実行できません)が、確認したかったのです。トリガーはかなり前に作成されたもので、あまり効率的ではないように見えます。そのため、次のステップはそれを調べて、何が必要で、どのように改善できるかを見つけることです. ありがとう!