Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Der schnellste Weg, um die am häufigsten verwendete Variante gespeicherter Prozeduren in SQL Server 2005 zu identifizieren

Dadurch erhalten Sie die 50 am häufigsten verwendeten Procs und die Anweisungen in den Procs von hier:Display die 50 am häufigsten verwendeten gespeicherten Prozeduren in SQL Server

SELECT TOP 50 * FROM(SELECT COALESCE(OBJECT_NAME(s2.objectid),'Ad-Hoc') AS ProcName,
  execution_count,s2.objectid,
    (SELECT TOP 1 SUBSTRING(s2.TEXT,statement_start_offset / 2+1 ,
      ( (CASE WHEN statement_end_offset = -1
  THEN (LEN(CONVERT(NVARCHAR(MAX),s2.TEXT)) * 2)
ELSE statement_end_offset END)- statement_start_offset) / 2+1)) AS sql_statement,
       last_execution_time
FROM sys.dm_exec_query_stats AS s1
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 ) x
WHERE sql_statement NOT like 'SELECT * FROM(SELECT coalesce(object_name(s2.objectid)%'
and OBJECTPROPERTYEX(x.objectid,'IsProcedure') = 1
and exists (SELECT 1 FROM sys.procedures s
WHERE s.is_ms_shipped = 0
and s.name = x.ProcName )
ORDER BY execution_count DESC

Besuchen Sie diesen Link, um nur die Abfrage für den Proc-Namen zu erhalten, aber ich denke, dies ist eine bessere Abfrage, da Sie auch die Anweisungen in den Procs erhalten