try this if you are running on sql 2008 or higher. this is something close to what you need:SELECT COALESCE(DB_NAME(t.[dbid]),'Unknown') AS [DB Name],ecp.objtype AS [Object Type],t.[text] AS [Adhoc Batch or Object Call],SUBSTRING(t.[text], (qs.[statement_start_offset]/2) + 1,((CASE qs.[statement_end_offset]WHEN -1 THEN DATALENGTH(t.[text]) ELSE qs.[statement_end_offset] END- qs.[statement_start_offset])/2) + 1) AS [Executed Statement],qs.[last_execution_time] AS [Last Exec Time],qs.[creation_time] AS [Creation Time]FROM sys.dm_exec_query_stats AS qs JOIN sys.dm_exec_cached_plans ecp ON qs.plan_handle = ecp.plan_handle CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS twhere ecp.objtype = 'Proc'order by [Last Exec Time] desc