SQL Server Management Studio,如何将执行时间缩短到毫秒


220

当我在SSMS中提交批次(例如执行查询)时,我会在状态栏中看到执行时间。是否可以将SSMS配置为以毫秒分辨率显示查询时间?

这是我正在谈论的带有红色圆圈的感兴趣部分的栏:

在此处输入图片说明


3
不能真正回答您的问题,但是您可以使用SQL Server Profiler(一种日志记录工具)来检查查询的持续时间。持续时间以毫秒为单位。
AGuyCalledGerald 2012年

Answers:


66

我一直在为此苦苦挣扎,直到找到这个...

http://blog.sqlauthority.com/2009/10/01/sql-server-sql-server-management-studio-and-client-statistics/

另外,如果打开“属性”窗口,您可能会发现一些神奇的“连接经过时间”,这可能会给您一些执行时间...希望对您有所帮助...


18
有关“属性”窗口的部分实际上就是该线程的答案。“经过的时间”坐在那里盯着你。
埃里克

我现在将此答案设置为可接受的答案,因为它是最正确的。
迈克尔·戈德施泰因

363

您要执行的操作是:

set statistics time on

-- your query

set statistics time off

在“消息”窗口中,输出将如下所示:

SQL Server执行时间:CPU时间= 6毫秒,经过的时间= 6毫秒。


1
但这会将时间安排在“消息”窗口中,这意味着我必须在执行查询后手动将其翻转。另外,结果似乎没有意义,例如:CPU时间= 1357毫秒,经过的时间= 169毫秒。即使我确实有8个具有超线程的内核(即16个虚拟),这又如何相加?
Michael Goldshteyn 2011年

2
@MichaelGoldshteyn关于您的CPU时间更长的原因,这是因为您拥有多核或超线程CPU。

25
@MichaelGoldshteyn 1357/8 = 169.625。巧合?
Dan J

3
@DanJ,数据库并没有从内存中做所有事情。通常会涉及I / O,而I / O意味着要花费更多的时间。
迈克尔·戈德施泰因,2012年

9
@binki您对我的1,555天的评论不正确是正确的。
benizi

125

通过执行以下任一操作来打开“ 客户端统计信息”:

  • 菜单:查询>包括客户统计信息
  • 工具栏:单击按钮(包括实际执行时间旁边)
  • 键盘:Shift-Alt-S

然后,您将获得一个新选项卡,其中记录(最多)最近10次执行的计时,IO数据和行数等(加上平均值!):

在此处输入图片说明


它与2012年11月来自@Ymagine First的答案相同。看到上面的答案...
Bogdan Bogdanov

该网站当时(具有讽刺意味的)当时存在SQL错误,因此我从Google缓存中提取了关键信息并发布为新答案。我并不是要窃取信用,也许我应该编辑原始答案。
NickG

实际上,看来我没有足够的代表点来编辑问题,所以这可能就是为什么我没有这样做的原因。
NickG 2015年

3
FYI单位的时间统计以毫秒为单位:brentozar.com/archive/2012/12/...
congusbongus


12

我一直在追求同样的事情,偶然发现了以下出色的链接:

http://www.sqlserver.info/management-studio/show-query-execution-time/

它显示了三种衡量性能的方法。一切都有自己的优势。我选择的一项如下:


宣告@ Time1 DATETIME

声明@ Time2 DATETIME

SET @ Time1 = GETDATE()

-在这里插入查询

SET @ Time2 = GETDATE()

SELECT DATEDIFF(MILLISECOND,@ Time1,@ Time2)已过_MS


这将显示查询的结果以及完成所花费的时间。

希望这可以帮助。


我发现不固定,有时显示时间,有时仅显示
0。– RMati

2

我不知道有关扩展信息栏的信息。

但是您可以将“消息”选项卡中显示的所有查询的时间设置为默认值。

在“查询”窗口中时,转到“查询菜单”项,选择“查询选项”,然后在“执行”组中选择“高级”,并选中“设置统计时间” /“设置统计IO”复选框。然后,这些值将显示在每个查询的消息区域中,而不必记住打开和关闭设置的统计信息。

您还可以随时使用Shift + Alt + S启用客户端统计信息


0

您可以尝试以下代码:

USE AdventureWorks2012;
GO
SET STATISTICS TIME ON;
GO
SELECT ProductID, StartDate, EndDate, StandardCost 
FROM Production.ProductCostHistory
WHERE StandardCost < 500.00;
GO
SET STATISTICS TIME OFF;
GO
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.