Sql server 从函数和过程中查找运行时间最长的查询
我有一个过程执行查询,这个过程依次调用函数,而这些函数又可以/不可以调用其他函数。所有这些过程和函数都有多个查询。 我想检查在此过程中运行时间最长的查询 我在网上找到了这个脚本,但它不适合我。它只返回create procedure/function语句,这些语句可能花费了最长的时间,但它不会返回超出这些语句的任何内容,并且可能不会查看函数和过程内部,因为我选择了前1000行,但它返回了大约60-70行,这些行只是create语句,没有其他内容 我能在这方面得到一些帮助吗?多谢各位Sql server 从函数和过程中查找运行时间最长的查询,sql-server,ssms,Sql Server,Ssms,我有一个过程执行查询,这个过程依次调用函数,而这些函数又可以/不可以调用其他函数。所有这些过程和函数都有多个查询。 我想检查在此过程中运行时间最长的查询 我在网上找到了这个脚本,但它不适合我。它只返回create procedure/function语句,这些语句可能花费了最长的时间,但它不会返回超出这些语句的任何内容,并且可能不会查看函数和过程内部,因为我选择了前1000行,但它返回了大约60-70行,这些行只是create语句,没有其他内容 我能在这方面得到一些帮助吗?多谢各位 SELE
SELECT DISTINCT TOP 10000
t.TEXT QueryName,
s.execution_count AS ExecutionCount,
s.max_elapsed_time AS MaxElapsedTime,
ISNULL(s.total_elapsed_time / s.execution_count, 0) AS AvgElapsedTime,
s.creation_time AS LogCreatedOn,
ISNULL(s.execution_count / DATEDIFF(s, s.creation_time, GETDATE()), 0) AS FrequencyPerSec
FROM sys.dm_exec_query_stats s
CROSS APPLY sys.dm_exec_sql_text( s.sql_handle ) t where t.dbid = DB_ID()
ORDER BY
s.max_elapsed_time asc
GO
您需要查看偏移量才能在对象中找到语句。不要重新发明轮子,自己写这些东西;例如,请看。@AaronBertrand:非常感谢您的回复,但我在这些脚本中找不到它。您在脚本中搜索了单词offset吗?也许可以这样看:按当前数据库查询的平均输入/输出使用率列出了顶级语句39个顶级IO语句,您只需更改顺序…@AaronBertrand:太漂亮了:非常感谢::查询非常有效。