Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 从函数和过程中查找运行时间最长的查询_Sql Server_Ssms - Fatal编程技术网

Sql server 从函数和过程中查找运行时间最长的查询

Sql server 从函数和过程中查找运行时间最长的查询,sql-server,ssms,Sql Server,Ssms,我有一个过程执行查询,这个过程依次调用函数,而这些函数又可以/不可以调用其他函数。所有这些过程和函数都有多个查询。 我想检查在此过程中运行时间最长的查询 我在网上找到了这个脚本,但它不适合我。它只返回create procedure/function语句,这些语句可能花费了最长的时间,但它不会返回超出这些语句的任何内容,并且可能不会查看函数和过程内部,因为我选择了前1000行,但它返回了大约60-70行,这些行只是create语句,没有其他内容 我能在这方面得到一些帮助吗?多谢各位 SELE

我有一个过程执行查询,这个过程依次调用函数,而这些函数又可以/不可以调用其他函数。所有这些过程和函数都有多个查询。 我想检查在此过程中运行时间最长的查询

我在网上找到了这个脚本,但它不适合我。它只返回create procedure/function语句,这些语句可能花费了最长的时间,但它不会返回超出这些语句的任何内容,并且可能不会查看函数和过程内部,因为我选择了前1000行,但它返回了大约60-70行,这些行只是create语句,没有其他内容

我能在这方面得到一些帮助吗?多谢各位

  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:太漂亮了:非常感谢::查询非常有效。