2012-11-30 4 views
45

So come ottenere le ultime query eseguite utilizzando il seguente SQL in SSMS -Ultima eseguito query per un database specifico

SELECT deqs.last_execution_time AS [Time], dest.text AS [Query] 
FROM sys.dm_exec_query_stats AS deqs 
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest 
ORDER BY deqs.last_execution_time DESC 

Ma voglio trovare loro per un database specifico. Non voglio usare SQL Profiler, se non devo. Inoltre, non credo che SQL Profiler mi consentirà di visualizzare le query che sono state già eseguite senza la creazione di profili attivate. Ho bisogno di farlo da SSMS.

+7

Non sarà sempre compilato, quindi è possibile che manchi qualcosa, ma come inizio è possibile filtrare su 'WHERE dest.dbid = DB_ID ('nome del database')'. Se vuoi tracciare il futuro, non usare * mai * Profiler a meno che tu non voglia che il tuo monitoraggio contribuisca effettivamente ai problemi di prestazioni. Utilizza una traccia lato server, eventi estesi o uno strumento di terze parti (ne conosco uno piuttosto buono). –

+0

mentre si esegue, non ottiene alcuna riga. Ho pochi altri database. Niente mostra per nessuno di loro. Forse non è DB_ID ('nome del database') .. gli ID sono diversi? – Mukus

+0

Quella query precedente è inutilizzabile nel determinare ciò che viene eseguito tutto perché non vedo nemmeno alcuni ID db dei database. Ho usato 'SELECT name, database_id FROM sys.databases;' – Mukus

risposta

55

Questo funziona per me per trovare le query su qualsiasi database nell'istanza. Sono sysadmin per l'istanza (controllare i privilegi):

SELECT deqs.last_execution_time AS [Time], dest.text AS [Query], dest.* 
FROM sys.dm_exec_query_stats AS deqs 
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest 
WHERE dest.dbid = DB_ID('msdb') 
ORDER BY deqs.last_execution_time DESC 

Questa è la stessa risposta che Aaron Bertrand fornito, ma non è stato collocato in una risposta.

+0

Questa risposta è corretta. Il motivo per cui non l'ho accettato è perché Aaron Bertrand ha risposto 6 mesi prima di fare un commento. Gli darò l'opportunità di postarlo come risposta. Se non vuole, accetterò il tuo. – Mukus

+0

Capito e riconosciuto. Non ci sono per i punti, quindi non preoccuparti :) Ho solo risposto in modo da poterlo togliere dalla pagina "Domande senza risposta". –

+0

Accettato ora. – Mukus