是否有任何方法/工具来识别SQL sERVER中的估计查询运行时间

时间:2013-08-27 15:37:30

标签: sql-server sql-server-2008 sql-server-2005 sql-server-2008-r2 sql-server-2000

我已经谷歌了解了一段时间..有没有办法确定估计的查询执行时间>

在ssms上有实际的执行计划和估计的执行计划。事情是这些都没有估计时间。

Sql Server中缺少什么?

3 个答案:

答案 0 :(得分:5)

目前,没有。微软目前正在研究如何使用已经完成的工作和估计的执行计划(参见他们的研究的详细信息on the Microsoft Research site)来实现这一目标,因此我们可以期待很快看到一些东西。但这是我所知道的唯一发展。

我过去使用最成功的解决方案,对于需要花费大量时间的流程,是将流程分解为更小的任务,并在每项任务结束时设置里程碑。记录每个任务的所有执行的总时间,并用于对当前执行的进度进行基准测试。这在很大程度上取决于查询的线性(即执行所花费的时间与记录数成线性比例)。里程碑可以通过一个过程的步骤,通过将数据分成更小的段,或两者都来衡量。

答案 1 :(得分:1)

通过实际运行查询来估计查询执行时间的唯一方法。即使在那之后,如果下次可能会有所不同,因为它取决于许多因素,例如您的服务器有多忙,或者许多进程正在尝试访问该表或您尝试访问的数据量。

答案 2 :(得分:1)

SQL Server不估计执行时间。

估算的查询成本曾经在文档中误导性地等同于估计的时间(以秒为单位)(对于query governor这样的功能),但它实际上只是一个无单位值。