Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Last executed queries for a specific database

I know how to get the last executed queries using the following SQL in SSMS -

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 

But I want to find them for a specific database. I don't want to use SQL Profiler, if I don't have to. Plus I don't think SQL Profiler will allow me to view queries that were already run without profiling turned on. I need to do this from SSMS.

like image 273
Mukus Avatar asked Nov 30 '12 03:11

Mukus


2 Answers

Following works perfectly for me : hope this helps

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 
like image 36
Jack Gajanan Avatar answered Nov 05 '22 06:11

Jack Gajanan


This works for me to find queries on any database in the instance. I'm sysadmin on the instance (check your privileges):

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 

This is the same answer that Aaron Bertrand provided but it wasn't placed in an answer.

like image 54
tommy_o Avatar answered Nov 05 '22 04:11

tommy_o