MSSQL·查询T-SQL语句执行时间的三种方法

阅文时长 | 0.23分钟 字数统计 | 420.8字符
主要内容 | 1、引言&背景 2、自定义时间变量求差法 3、mssql内置方法 4、mssql选项开启时间统计 5、声明与参考资料
『mssql·查询t-sql语句执行时间的三种方法』
编写人 | scschero 编写时间 | 2021/5/22 am12:30
文章类型 | 系列 完成度 | 已完成
座右铭 每一个伟大的事业,都有一个微不足道的开始。

一、引言&背景   完成度:100%

a) 应对问题

  1. 如何统计t-sql语句的执行时间?
  2. 统计t-sql语句的执行时间有哪几种方法?
  3. 统计t-sql语句的执行时间的几种方法有哪些优缺点?

b) 应用场景

  1. 需要统计t-sql、存储过程、视图、函数等执行时间的场景。
  2. db性能调优,对比不同的方式执行时间。

c) 解决原理&方法

  1. 自定义时间变量求差法。
  2. mssql内置统计信息选项。
  3. 默认开启时间统计信息。

二、自定义时间变量求差法   完成度:100%

实现方式如下。

declare @vardatetime datetime
set @vardatetime=getdate()
/*此处写入需要查询执行时长的语句*/
select [语句执行花费时间(毫秒)]=datediff(ms,@vardatetime,getdate())

【tips】此种方法的执行时间相比mssql内置统计时间略长,有一种说法是跟调用了聚合函数有关。

三、mssql内置方法   完成度:100%

a) 语法简介

set statistics profile on:显示分析、编译和执行查询所需的时间(以毫秒为单位)。
set statistics io on:报告与语句内引用的每个表的扫描数、逻辑读取数(在高速缓存中访问的页数)和物理读取数(访问磁盘的次数)有关的信息。
set statistics time on:显示每个查询执行后的结果集,代表查询执行的配置文件。

b) 示例demo

set statistics time on
set statistics io on
set statistics profile on
go
/*此处写入需要查询执行时长的语句*/ 
go
set statistics profile off
set statistics time off
set statistics io off

c) 可获取信息

此种数据统计方法,可从消息中查看cpu时间和总时间。并可获得扫描计数、逻辑读取、物理读取、预读次数、逻辑读取、物理读取、lob预读等信息。可从结果集中,获取io执行时间和cpu执行时间。

d) 数据深度分析

占用时间:当前这一步的总时间。如果占用时间比cpu时间大很多,那开销主要用于io上。
逻辑读取次数:从数据缓存读取的页数。数字越小,性能越好。在性能调优中这个数字非常重要。因为它不会随着执行又执行而改变,除非数据或查询语句有变动。在进行性能调优时,这个可以作为性能提升的重要参考。
物理读取次数:从磁盘读取的页数。这个会随着执行又执行而改变。大多数情况下,连续第2次的执行时,它的物理读取值为0(因为会加载到内存中去)。

—-来自《sqlserver 查看脚本执行时间》

四、mssql选项开启时间统计   完成度:100%

工具->选项->查询执行->高级,如下图所示:


—-来自《sqlserver 查看sql语句的执行时间》

五、声明与参考资料   完成度:100%

sqlserver 查看sql语句的执行时间

原创博文,未经许可请勿转载。

如有帮助,欢迎点赞、收藏、关注。如有问题,请评论留言!如需与博主联系的,直接博客私信scschero即可。

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐