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

时间:2011-11-23 18:55:55

标签: sql-server ssms sql-server-2008

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

这是我正在谈论的红色圈内的感兴趣部分:

enter image description here

8 个答案:

答案 0 :(得分:339)

你想要做的是:

set statistics time on

-- your query

set statistics time off

这将在“消息”窗口中显示类似的输出:

  

SQL Server执行时间:CPU时间= 6毫秒,已用时间= 6毫秒。

答案 1 :(得分:109)

通过执行以下操作之一启用客户端统计信息

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

然后你得到一个新标签,记录最后10次执行(加上平均值!)的时间,IO数据和行数等等:

enter image description here

答案 2 :(得分:48)

我一直在努力,直到我找到了......

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

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

答案 3 :(得分:16)

将执行时间作为proc中的变量:

DECLARE @EndTime datetime
DECLARE @StartTime datetime 
SELECT @StartTime=GETDATE() 

-- Write Your Query


SELECT @EndTime=GETDATE()

--This will return execution time of your query
SELECT DATEDIFF(ms,@StartTime,@EndTime) AS [Duration in millisecs] 

并看到这个

Measuring Query Performance : "Execution Plan Query Cost" vs "Time Taken"

答案 4 :(得分:8)

我是在追求同样的事情,偶然发现以下很棒的链接:

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

它显示了测量性能的三种不同方法。一切都有利于自己的长处。我选择的那个如下:

DECLARE @ Time1 DATETIME

DECLARE @ Time2 DATETIME

SET @ Time1 = GETDATE()

- 在此处插入查询

SET @ Time2 = GETDATE()

SELECT DATEDIFF(MILLISECOND,@ Time1,@ Time2)AS Elapsed_MS

这将显示您的查询结果,然后显示完成所需的时间。

希望这有帮助。

答案 5 :(得分:2)

我不知道如何扩展信息栏。

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

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

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

答案 6 :(得分: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

答案 7 :(得分:0)

通过按 Ctrl + Alt + S 来<<包括客户端统计信息。 然后,您将在下面的统计信息选项卡中获得所有执行信息。