Quickest way to identify most used Stored Procedure variation in SQL Server 2005

后端 未结 4 2116
醉话见心
醉话见心 2021-02-14 23:28

I am trying to figure out if there\'s a way to identify a \"version\" of a SP that gets called the most. I have an SP that gets called with a bunch of different parameters. I kn

4条回答
  •  误落风尘
    2021-02-14 23:57

    This will give you the top 50 most used procs and the statements in the procs, from here: Display the 50 most used stored procedures 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
    

    Visit that link to grab the query for the proc name only, but I think this is a better query since it gives you the statements in the procs also

提交回复
热议问题