手记

SQL execution time

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

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

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

参考下面演示例子:   

代码

--删除计划缓存中的所有元素,通过指定计划句柄或 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]

 

 

0人推荐
随时随地看视频
慕课网APP