SQL Serverのタイムアウト(特にSELECTクエリ)はERRORLOGファイルに記録されていますか?
背景は、タイムアウトがデータベースのタイムアウトによって引き起こされていると想定して、時々「リクエストタイムアウト」メッセージを表示するWebサイトを持っている顧客です。問題のERRORLOGにはタイムアウトエラーはありません。
SQL Serverのタイムアウト(特にSELECTクエリ)はERRORLOGファイルに記録されていますか?
背景は、タイムアウトがデータベースのタイムアウトによって引き起こされていると想定して、時々「リクエストタイムアウト」メッセージを表示するWebサイトを持っている顧客です。問題のERRORLOGにはタイムアウトエラーはありません。
いいえ。SQLプロファイラーを使用する必要があります。LockTimeoutイベントとDeadlockGraphイベントを含む標準のトレースで実行できます。
ハードウェアは別として(十分なRAMと高速ドライブ、適切なRAID構成でのデータファイルとログファイルの適切な配置など)、ほとんどのタイムアウトは、ワークロードに十分な「適切な」インデックスのセットがないことが原因で発生します。
インデックスのメンテナンス計画は定期的にスケジュールされていますか?
SQL Server のタイムアウトは、注意イベントとしてクライアント側から開始され、SQL Server エラー ログには記録されません。
以下を使用して注意イベントを監視できます。
タイムアウトイベントとデッドロックイベントで発生するイベント通知を使用することもできます。起動したら、テーブルに書き込んだり、自分にメールを送信したりできます。
ここで一般的な手法を示しました。
既存のコードを変更せずに即時デッドロック通知
2008年7月18日
このように、プロファイラーを実行する必要はありません。パフォーマンスに影響を与える可能性があります。