Domanda

Sto usando SQL Server 2012 e voglio prendere in attesa delle query che richiedono più tempo da eseguire insieme alle query che stanno causando il blocco sul server.Quando guardo il server per le query in esecuzione per identificare qualsiasi blocco non trovo alcuna query.

Ho configurato gli eventi estesi e ottenendo solo informazioni di alto livello da questo.Le tabelle che stanno ottenendo timeout ma ho bisogno di informazioni che raccontano di più sulle query che ha causato il timeout.

Qualche suggerimento ???

È stato utile?

Soluzione

È possibile utilizzare il DMV sys. dm_exec_query_stats e sys.dm_exec_requests Analizzare le domande che consumano le risorse insieme alla loro durata per quanto tempo:

Utilizzare la query qui sotto per acquisire lo stesso:

-- 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;
.

Inoltre suggerirebbe se si utilizzano eventi estesi, è possibile catturare lo stesso. Per ulteriori informazioni su come configurare e utilizzare lo stesso, per favore leggi questo whitepaper da jonathan usando SQL Server 2008 Eventi estesi che dovrebbero farti andare alone con qui

Inoltre, quando le query funzionano, e ciò che tutto il processo funziona sullo sfondo e per verificare se il blocco è davvero là fuori insieme a qualsiasi attesa particolare, ti suggerirebbe di usare sp_whoisactive da Come utilizzare sp_whoisactive per trovare query slow sql server

Inoltre, se si preferisce utilizzare Profiler è possibile tracciare e risolvere i problemi come spiegato in Come identificare le query di esecuzione lente con SQL Profiler

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top