MK_*_*Dev 9 t-sql stored-procedures sql-server-2005
我试图弄清楚是否有办法识别被称为最多的SP的"版本".我有一个SP,它被一堆不同的参数调用.我知道SP引起了一些问题,并试图指出问题所在.除了捕获SP的呼叫并手动筛选结果外,是否可以使用分析器通过提供的参数对SP呼叫进行分组?
我不是一个DB(A/E),只是一个Web开发人员,所以任何正确方向的提示/点都会有所帮助.谢谢!
编辑:重新编译SP没有多大帮助.
SQL*_*ace 15
这将从这里为您提供前50个最常用的过程和过程中的语句:在SQL Server中显示50个最常用的存储过程
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
Run Code Online (Sandbox Code Playgroud)
访问该链接只获取proc名称的查询,但我认为这是一个更好的查询,因为它还提供了procs中的语句