Question

Les délais d'expiration de SQL Server (requêtes SELECT, en particulier) sont-ils enregistrés dans le fichier ERRORLOG?

Background est un client ayant un site Web ayant un délai "Demander dépassement de temps imparti". messages, en me supposant que le délai d'attente est causé par un délai d'attente de base de données. ERRORLOG en question ne contient aucune erreur de délai d'attente.

Était-ce utile?

La solution

Non. Vous devrez utiliser SQL Profiler. Une trace standard avec les événements Délai d'attente de verrouillage et Graphique de blocage devrait le faire.

Le matériel mis à part (par exemple, suffisamment de RAM et de disques, et un placement approprié des fichiers de données et des journaux dans les configurations RAID appropriées), la plupart des délais d'attente sont causés par le fait de ne pas avoir un ensemble d'indices suffisant pour votre charge de travail.

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

Autres conseils

Les délais d'attente SQL Server sont initiés du côté client en tant que Événements d'avertissement et ne sont pas enregistrés dans le journal des erreurs de SQL Server.

Vous pouvez surveiller les événements d'attention à l'aide de:

vous pouvez également utiliser des notifications d’événement qui sont supprimées lors des événements de dépassement de délai et de blocage. après le déclenchement, vous pouvez l'écrire sur une table et / ou vous envoyer un email. J'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

Ainsi, vous n'avez pas besoin d'exécuter le profileur, ce qui peut avoir un impact sur les performances.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top