为了账号安全,请及时绑定邮箱和手机立即绑定

SQL execution time

标签:
SQL Server

可以首先定义两个时间变量,@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]

 

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消