2008-11-17 7 views
11

Sind SQL Server Timeouts (insbesondere SELECT-Abfragen) in der Datei ERRORLOG protokolliert?Sind Timeouts für SQL Server protokolliert?

Hintergrund ist ein Kunde mit einer Website mit gelegentlichen "Request Timeout" Nachrichten, mit der Annahme, dass das Timeout durch ein Datenbank-Timeout verursacht wird. Es gibt keine Zeitüberschreitungsfehler in dem fraglichen ERRORLOG.

Antwort

10

Nein. Sie müssen SQL Profiler verwenden. Ein Standard-Trace mit dem Lock Timeout Ereignis und Deadlock Graph Ereignisse sollte es tun.

Hardware zur Seite (wie genug RAM und schnelle Laufwerke und entsprechende Platzierung von Daten und Log-Dateien auf den entsprechenden RAID-Konfigurationen) die meisten Timeouts verursacht werden indem Sie nicht genügend "gute" Indizes für Ihre Arbeitslast haben.

Haben Sie regelmäßige Indexwartungspläne?

+0

Vielen Dank für das, habe ich eine Spur gehen ... Ich habe keine regelmäßige Indexwartung, aber ich habe sie letzte Woche defragmentiert und das Problem tritt immer noch auf. –

+0

wie ich sagte Profiler Trace kann zu Leistungsproblemen führen, wenn für eine Weile gelassen zu laufen. natürlich abhängig von Ihrer Systemlast. –

+2

Eine ordnungsgemäß eingerichtete Ablaufverfolgung sollte ungefähr weniger als 5% der CPU und Ressourcen verbrauchen. Dieser Beitrag zeigt Ihnen, wie: http://stackoverflow.com/questions/257906/ms-sql-server-2008-how-can-i-log-and-find-the-most-expensive-queries#257944 –

2

Sie können auch Ereignis-Notifications verwenden, die bei den Timeout- und Deadlock-Ereignissen ausgelöst werden. nachdem es ausgelöst wird, können Sie es in eine Tabelle schreiben oder sich eine E-Mail senden. Ich habe die allgemeine Technik hier gezeigt: http://weblogs.sqlteam.com/mladenp/archive/2008/07/18/Immediate-deadlock-notifications-without-changing-existing-code.aspx

auf diese Weise müssen Sie Profiler nicht ausführen, die die Leistung beeinträchtigen können.

4

SQL Server Timeouts ist initiiert von der Client-Seite als Achtung Event und ist nicht in dem SQL Server-Fehlerprotokoll aufgezeichnet.

Sie können für Attention Ereignisse überwachen mit: