当我在SSMS中提交批处理(例如,执行查询)时,我看到在状态栏中执行所花的时间。是否可以配置SSMS以毫秒分辨率显示查询时间?SQL Server Management Studio中,如何将执行时间缩短到毫秒
这里是我与感兴趣的部分谈到了酒吧红色圆圈:
当我在SSMS中提交批处理(例如,执行查询)时,我看到在状态栏中执行所花的时间。是否可以配置SSMS以毫秒分辨率显示查询时间?SQL Server Management Studio中,如何将执行时间缩短到毫秒
这里是我与感兴趣的部分谈到了酒吧红色圆圈:
你想要做的是这样的:
set statistics time on
-- your query
set statistics time off
这将有输出在消息窗口中看起来像这样:
SQL Server执行Tim es:CPU时间= 6 ms,经过时间= 6 ms。
但是这将时间放在消息窗口中,这意味着在执行查询后我必须手动翻转它。而且,结果似乎没有意义,例如:CPU时间= 1357毫秒,经过时间= 169毫秒。即使我拥有8个带有超线程的内核(即16个虚拟内存),这又如何加起来呢? –
@MichaelGoldshteyn不幸的是,我不认为有一种方法可以修改SSMS状态栏中的已用时间。我认为你唯一的选择将其捕获到'MS'将是我的职位。 – 2011-11-23 19:03:15
@MichaelGoldshteyn至于为什么你的CPU时间更长,这是因为你有一个多核或超线程CPU。 – 2011-11-23 19:04:02
我与挣扎,直到我发现这个...
另外,如果你打开属性窗口中,你可能会发现一些神奇的“连接经过时间”,可能会给你一些执行时间... 希望它可以帮助...
关于属性窗口的部分实际上是这个线程的答案。 “逝去的时间”坐在那里凝视着你的脸。 – radpin
要得到执行时间为您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"
Datepart NS代表毫微秒,使用毫秒ms –
你可以试试这个代码:
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
我不知道关于扩大信息栏做。
但是,您可以将设置的时间设置为默认显示在“消息”选项卡中的所有查询。
在查询窗口中,进入查询菜单项,选择“查询选项”,然后在“执行”组中选择“高级”并选中“设置统计时间”/“设置统计IO”复选框。 这些值将显示在每个查询的消息区域中,而不必记住打开和关闭设置的统计数据。
你也可以使用Shift + Alt键+ S通过执行下列操作之一在任何时间,以使客户端统计
我是同样的事情后遇到下列链接,是辉煌的偶然:
http://www.sqlserver.info/management-studio/show-query-execution-time/
它显示性能测量的三种不同的方式。一切都有利于自己的长处。我选择了一个如下:
DECLARE @时间1 DATETIME
DECLARE @时间2 DATETIME
SET @时间1 = GETDATE()
- 在这里插入查询
SET @ Time2 = GETDATE()
SELECT DATEDIFF(MILLISE COND,@时间1,@时间2)AS Elapsed_MS
这将显示您的查询,然后花费的时间完成量的结果。
希望这会有所帮助。
并非真正回答您的问题,但您可以使用SQL Server Profiler(一种日志工具)来检查查询的持续时间。持续时间以毫秒为单位进行测量。 – AGuyCalledGerald