SQL Serverのタイムアウトはログに記録されていますか?
-
08-07-2019 - |
質問
SQL Serverのタイムアウト(特にSELECTクエリ)はERRORLOGファイルに記録されますか?
バックグラウンドは、時々「リクエストタイムアウト」が発生するウェブサイトを持つ顧客です。タイムアウトはデータベースのタイムアウトが原因であると仮定して私に見えるメッセージ。問題のERRORLOGにタイムアウトエラーはありません。
解決
いいえ。 SQLプロファイラーを使用する必要があります。 Lock Timeout イベントと Deadlock Graph イベントを使用した標準トレースで実行できます。
ハードウェアは別として(十分なRAMと高速ドライブ、適切なRAID構成でのデータファイルとログファイルの適切な配置など)ほとんどのタイムアウトは、ワークロードに十分な「適切な」インデックスセットがないために発生します。
定期的にスケジュールされたインデックスメンテナンスプランはありますか?
他のヒント
SQL Serverのタイムアウトは、クライアント側からアテンションイベントとして開始され、SQL Serverエラーログに記録されません。
次を使用してアテンションイベントを監視できます:
タイムアウトおよびデッドロックイベントで発生するイベント通知を使用することもできます。 起動後、テーブルに書き込んだり、メールを送信したりできます。 ここに一般的なテクニックを示しました: http: //weblogs.sqlteam.com/mladenp/archive/2008/07/18/Immediate-deadlock-notifications-without-changing-existing-code.aspx
これにより、プロファイラを実行する必要がなくなり、パフォーマンスに影響を与える可能性があります。