【问题标题】:Is there any way/tool to identify estimate query run time in SQL sERVER是否有任何方法/工具来确定 SQL sERVER 中的估计查询运行时间
【发布时间】:2013-08-30 11:09:50
【问题描述】:

我已经在谷歌上搜索了一段时间..有什么方法可以确定估计的查询执行时间>

ssms上有实际的执行计划和估计的执行计划,问题是这些都没有估计时间。

是不是 Sql Server 缺少什么?

【问题讨论】:

  • 估计时间意味着数据库引擎可以提前知道结果是什么,这意味着无论如何它基本上都必须运行查询。
  • 我听说像 Teradata 这样的数据库可以显示运行查询的预计时间.. sql server 中是否提供该工具

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


【解决方案1】:

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

【讨论】:

  • 不回答问题。当然,实际时间会发生变化。我们正在寻找一个平均接近的估计值。或者至少是查询成本的一个指标。
【解决方案2】:

SQL Server 不估计执行时间。

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

【讨论】:

    【解决方案3】:

    目前,没有。微软目前正在研究结合已经完成的工作和估计的执行计划的方法(请参阅他们的研究细节on the Microsoft Research site),因此我们可以期待很快看到一些东西。但这是我所知道的唯一发展。

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

    【讨论】:

      猜你喜欢
      • 2012-03-17
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      • 2019-11-07
      • 2012-10-07
      • 2012-03-28
      • 2013-02-07
      • 1970-01-01
      相关资源
      最近更新 更多