首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >测量执行t-sql查询所需的时间。

测量执行t-sql查询所需的时间。
EN

Stack Overflow用户
提问于 2012-07-27 01:50:00
回答 4查看 230.6K关注 0票数 183

我有两个使用SqlServer 2005的t-sql查询。我如何测量每个程序运行所需的时间?

用我的秒表也不行。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-27 02:00:28

测量事件之间的“已用时间”的一种简单方法是只获取当前日期和时间。

在SQL Server Management Studio中

代码语言:javascript
复制
SELECT GETDATE();
SELECT /* query one */ 1 ;
SELECT GETDATE();
SELECT /* query two */ 2 ; 
SELECT GETDATE(); 

要计算运行时间,您可以将这些日期值提取到变量中,并使用DATEDIFF函数:

代码语言:javascript
复制
DECLARE @t1 DATETIME;
DECLARE @t2 DATETIME;

SET @t1 = GETDATE();
SELECT /* query one */ 1 ;
SET @t2 = GETDATE();
SELECT DATEDIFF(millisecond,@t1,@t2) AS elapsed_ms;

SET @t1 = GETDATE();
SELECT /* query two */ 2 ;
SET @t2 = GETDATE();
SELECT DATEDIFF(millisecond,@t1,@t2) AS elapsed_ms;

这只是一种方法。您还可以使用SQL事件探查器获取查询的运行时间。

票数 204
EN

Stack Overflow用户

发布于 2013-09-24 14:38:06

代码语言:javascript
复制
DECLARE @StartTime datetime
DECLARE @EndTime 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]

You can also See this solution

票数 20
EN

Stack Overflow用户

发布于 2016-06-29 03:05:19

更好的是,这将测量查询的n次迭代的平均值!非常适合更准确的读数。

代码语言:javascript
复制
declare @tTOTAL int = 0
declare @i integer = 0
declare @itrs integer = 100

while @i < @itrs
begin
declare @t0 datetime = GETDATE()

--your query here

declare @t1 datetime = GETDATE()

set @tTotal = @tTotal + DATEDIFF(MICROSECOND,@t0,@t1)

set @i = @i + 1
end

select @tTotal/@itrs
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11675077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档