Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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查询的执行时间?_Sql Server - Fatal编程技术网

Sql server 获得;“真正的”;SQL Server查询的执行时间?

Sql server 获得;“真正的”;SQL Server查询的执行时间?,sql-server,Sql Server,我有两个存储过程,其中第二个存储过程是第一个存储过程的改进 我正试图准确地衡量这一改进的程度 1/测量时钟时间似乎不是一个选项,因为我得到了不同的执行时间。更糟糕的是,有时(很少,但经常发生)第二个存储过程的执行时间大于第一个过程的执行时间(我猜是由于当时的服务器工作负载) 2/包含客户端统计信息也提供不同的结果 3/DBCC DROPCLEANBUFFERS,DBCC FREEPROCCACHE都很好,但同样的情况 4/在上设置统计IO可能是一个选项,但由于存储过程中涉及许多表,如何获得总分呢

我有两个存储过程,其中第二个存储过程是第一个存储过程的改进

我正试图准确地衡量这一改进的程度

1/测量
时钟时间
似乎不是一个选项,因为我得到了不同的执行时间。更糟糕的是,有时(很少,但经常发生)第二个存储过程的执行时间大于第一个过程的执行时间(我猜是由于当时的服务器工作负载)

2/
包含客户端统计信息
也提供不同的结果

3/
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
都很好,但同样的情况

4/
上设置统计IO可能是一个选项,但由于存储过程中涉及许多表,如何获得总分呢

5/
包括实际执行计划
也可以是一个选项。对于第一个存储过程,我得到了
估计的subtreecost
,为0.3253,对于第二个存储过程,得到了0.3079。我能说第二个存储过程快了6%吗(=0.3253/0.3079)

6/是否使用SQL Server探查器中的“读取”字段?即使在这种情况下,当我多次执行这些存储过程时,也会得到不同的结果

那么,无论执行条件如何(服务器的工作负载、执行这些存储过程的服务器等),我怎么能说第二个存储过程比第一个存储过程快x%。


如果不可能,我如何证明第二个存储过程更优化。

几分钟前我看到这个问题也被迁移到dba.stackexchange.com类似于:-请不要迁移它,因为这里有十几个关于stackoverflow的类似问题,每个问题都有部分解决方案。这将是很好的,有一个单一的职位,有完整的答案,考虑到我已经汇总了以前的答案。此外,我认为这不一定只与DBA有关,可以由DBA或开发人员来回答。