2008-11-17 4 views
11

Les délais d'attente SQL Server (requêtes SELECT, en particulier) sont-ils enregistrés dans le fichier ERRORLOG? L'arrière-plan est un client avec un site Web ayant occasionnellement des messages "Demande de délai", me regardant en supposant que le délai d'attente est causé par un délai d'attente de base de données. Il n'y a pas d'erreurs de dépassement de délai dans l'ERRORLOG en question.Les délais d'attente SQL Server sont-ils consignés?

Répondre

10

Non. Vous devez utiliser SQL Profiler. Une trace standard avec l'événement Lock Timeout et événements Deadlock Graph devrait le faire.

matériel de côté (par exemple assez de RAM et disques rapides, et le placement approprié des données et fichiers journaux sur les configurations RAID appropriées) la plupart des délais d'attente sont causées en ne disposant pas d'un «bon» jeu d'index suffisant pour votre charge de travail.

Avez-vous des plans de maintenance d'index planifiés régulièrement?

+0

Merci pour cela, je l'ai mis une trace va ... Je n'ai pas maintenance d'index régulière, mais je les ai défragmentés la semaine dernière et le problème persiste. –

+0

comme je l'ai dit trace de profiler pourrait causer des problèmes de performance si laissé pour un certain temps à courir. en fonction bien sûr de la charge de votre système. –

+2

Une trace correctement configurée doit consommer à peu près moins de 5% du processeur et des ressources. Ce post va vous montrer comment: http://stackoverflow.com/questions/257906/ms-sql-server-2008-how-can-i-log-and-find-the-most-expensive-queries#257944 –

2

Vous pouvez également utiliser les notifications d'événement qui se répercutent sur les événements de délai d'attente et de blocage. après son déclenchement, vous pouvez l'écrire sur une table et/ou vous envoyer un e-mail. je l'ai montré la technique générale ici: http://weblogs.sqlteam.com/mladenp/archive/2008/07/18/Immediate-deadlock-notifications-without-changing-existing-code.aspx

cette façon, vous ne devez pas exécuter profileur qui peut influer sur les performances.

4

les délais d'attente SQL Server sont lancé du côté client comme Événements Attention et ne sont pas enregistrés dans l'erreur SQL Server Log.

Vous pouvez suivre pour les événements d'attention à l'aide:

Questions connexes