web-dev-qa-db-ja.com

デッドロックのため、Ola Hallengren Index Optimizeスクリプトが失敗しました

本番サーバーで毎晩のメンテナンスタスクを実行するために、毎晩スクリプトをスケジュールしてインデックスをデフラグしました。他の夜間のアプリケーションメンテナンスタスクが原因で、デッドロックが原因でジョブが失敗することがあります。同時にスクリプトを開始してインデックスをデフラグし、同じテーブルでクエリはインデックスが作成された場所で更新を行っています。その仕事が失敗するのを防ぐための解決策を見つけたいのですが。そのクエリを制御できないので、クエリが完了するまでテーブルがロックされているかどうかを確認する方法を見つけ、その後、インデックスの最適化を開始します。

任意の提案をいただければ幸いです。

ありがとう。

1
EnricoBe

ほとんどの場合、インデックスジョブの実行は、週に1回だけ実行する必要があります。 (週末のような)オフピーク時間がある場合は、それを実行できます。

週1日のインデックスメンテナンス スケジュール、ジョブのスケジュール方法

毎日実行する必要がある場合は、以下の変数を変更して、ロックタイムアウトに対処できます。

  • WaitAtLowPriorityAbortAfterWait
  • LockTimeout

https://ola.hallengren.com/sql-server-index-and-statistics-maintenance.html

1
James Jenkins