当我在SSMS中提交批处理(例如,执行查询)时,我会看到在状态栏中执行所花费的时间。是否可以配置SSMS以毫秒级分辨率显示查询时间?
这是我正在谈论的红色圈内的感兴趣部分:
答案 0 :(得分:339)
你想要做的是:
set statistics time on
-- your query
set statistics time off
这将在“消息”窗口中显示类似的输出:
SQL Server执行时间:CPU时间= 6毫秒,已用时间= 6毫秒。
答案 1 :(得分:109)
通过执行以下操作之一启用客户端统计信息:
然后你得到一个新标签,记录最后10次执行(加上平均值!)的时间,IO数据和行数等等:
答案 2 :(得分:48)
我一直在努力,直到我找到了......
此外,如果您打开“属性”窗口,您可能会发现一些神奇的“连接已用时间”,可能会给您一些执行时间...... 希望它有所帮助...
答案 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)