SQL execution time

可以首先定义两个时间变量,@BeginTime 和@EndTime数据类型均为Time。

执行SQL语句之前,先把系统当前时间赋值给@BeginTime变量,在SQL语句结果时,再把当前系统时间赋值给@EndTime变量。

然后使用DATEDIFF函数计算时间差,即可得到SQL执行所需要时间。

参考下面演示例子:   

SQL execution time 代码
-- 删除计划缓存中的所有元素,通过指定计划句柄或 SQL 句柄从计划缓存中删除特定计划,或者删除与指定资源池相关联的所有缓存条目。
--
http://msdn.microsoft.com/zh-cn/library/ms174283.aspx
DBCC  FREEPROCCACHE

-- 从缓冲池中删除所有清除缓冲区
--
http://msdn.microsoft.com/zh-cn/library/ms187762.aspx
DBCC  DROPCLEANBUFFERS  

GO

DECLARE   @BeginTime  TIME( 4 )
DECLARE   @EndTime  TIME( 4 )
-- 把当前系统日期时间赋值给@BeginTime变量
SET   @BeginTime   =   CURRENT_TIMESTAMP ;

BEGIN
    
-- 判断表是否在存在,如果存在,首先删除。
     IF   OBJECT_ID  ( ' [dbo].[TestExecuteTime] ' , ' U ' IS   NOT   NULL   DROP   TABLE   [ dbo ] . [ TestExecuteTime ] ;
    
-- 创建一个全新的表
     CREATE   TABLE   [ dbo ] . [ TestExecuteTime ] ( [ Number ]   INT   NOT   NULL );
    
-- 下面是插入数据
     DECLARE   @I   INT   =   0
    
WHILE   @I   <=   10
    
BEGIN
        
INSERT   INTO   [ dbo ] . [ TestExecuteTime ]  ( [ Number ] VALUES  ( @I );
        
SET   @I   =   @I   +   1
    
END
END
-- 把当前系统日期时间赋值给@EndTime变量
SET   @EndTime   =   CURRENT_TIMESTAMP ;

-- 计算执行时间
SELECT   DATEDIFF (millisecond,  @BeginTime @EndTime AS   [ ExecuteTime ]

 

 

你可能感兴趣的:(time)