Question

J'utilise SQL Server 2012 et je tiens à saisir les requêtes qui prennent plus de temps à exécuter avec les requêtes qui causent le blocage sur le serveur.Lorsque je regarde le serveur pour les requêtes en cours d'exécution pour identifier tout blocage, je ne trouve aucune requête.

J'ai configuré des événements étendus et obtenez seulement des informations de haut niveau de cela.Les tables qui obtiennent des délais d'attente, mais j'ai besoin d'informations qui en indiquent davantage sur les requêtes qui ont provoqué les délais d'attente.

Toute suggestion ???

Était-ce utile?

La solution

Vous pouvez utiliser le DMV SYS. dm_exec_query_stats et sys.dm_exec_requests Analyser les requêtes consommatrices de ressources avec leur durée pour la longue:

Utilisez la requête ci-dessous pour capturer la même chose:

-- Execute the query inside target database
 SELECT TOP 10
      qs.total_elapsed_time / qs.execution_count / 1000000.0 AS average_seconds,
      qs.total_elapsed_time / 1000000.0 AS total_seconds,
      qs.execution_count,
      SUBSTRING (qt.text,qs.statement_start_offset/2, 
      (CASE WHEN qs.statement_end_offset = -1 
      THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2 
      ELSE qs.statement_end_offset END - qs.statement_start_offset)/2) AS individual_query,
      o.name AS object_name,
      DB_NAME(qt.dbid) AS database_name
FROM 
      sys.dm_exec_query_stats qs
      CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt
      LEFT OUTER JOIN sys.objects o ON qt.objectid = o.object_id
WHERE 
      qt.dbid = DB_ID()
ORDER BY 
      average_seconds DESC;

En outre, suggérerait si vous utilisez des événements étendus, vous pouvez capturer la même chose. Pour plus d'informations sur la façon de configurer et d'utiliser la même chose, veuillez lire ce livre blanc de Jonathan SQL Server 2008 Événements étendus qui devraient vous aider à alon avec ici

En outre, lorsque les requêtes sont exécutées et que font tous le processus à l'arrière-plan et vérifier si le blocage est vraiment là-bas avec des attentes particulières, vous suggérez d'utiliser sp_whoisactive de Comment utiliser sp_whoisactive pour trouver des requêtes SQL Server SLOW SQL

De plus, si vous préférez utiliser le profileur, vous pouvez suivre et résoudre les mêmes problèmes que ceux expliqués dans Comment identifier les requêtes de course lentes avec le profileur SQL

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top