Domanda

Voglio utilizzare la seguente query:

SELECT  
    SUBSTRING(qt.TEXT, ( qs.statement_start_offset / 2 ) + 1,
     ( ( CASE qs.statement_end_offset
           WHEN -1 THEN DATALENGTH(qt.TEXT)
           ELSE qs.statement_end_offset
         END - qs.statement_start_offset ) / 2 ) + 1) AS [Text] ,
 qs.execution_count ,
 qs.total_logical_reads ,
 qs.last_logical_reads ,
 qs.total_logical_writes ,
 qs.last_logical_writes ,
 qs.total_worker_time ,
 qs.last_worker_time ,
 qs.total_elapsed_time / 1000000 total_elapsed_time_in_S ,
 qs.last_elapsed_time / 1000000 last_elapsed_time_in_S ,
 qs.last_execution_time ,
 qp.query_plan
FROM sys.dm_exec_query_stats qs
 CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
    CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
ORDER BY qs.total_worker_time DESC 
.

Ho preso lo snippet di codice da Come trovare le query intensive della CPU? sui blog centrali di SQL Server.

Devo eseguire questa query sul database che è in compatibility mode 80 e applicare non è disponibile lì.

È stato utile?

Soluzione

I risultati di quella query non saranno ambiti in particolare del database. Mostreranno attività in tutta l'istanza.

In generale, sarebbe abbastanza difficile fornire informazioni a questa granularità, poiché le query possono accedere ai dati da più di un database (Azure SQL Database a parte).

In query non banale, contabilizzando i costi su base per database (ad es. Dopo che i join e le aggregazioni sono stati eseguiti) sarebbe praticamente impossibile. Alcuni DMV forniscono informazioni sul database context al momento in cui una query è stata eseguita, ma di nuovo, la query potrebbe aver acceduto gli oggetti in un database completamente diverso.

La risposta più semplice, quindi, è semplicemente eseguire la query nel contesto di un database impostato su livello di compatibilità 90 o superiore, ad esempio tempdb o master . Non influenzerà i risultati (a parte non produrre un errore).

Se questa non è una soluzione adatta, ti preghiamo di modificare la tua domanda da chiarire.

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