欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-25 12:34:12
阅文时长 | 0.23分钟 字数统计 | 420.8字符 主要内容 | 1、引言&背景 2、自定义时间变量求差法 3、MSSQL内置方法 4、MSSQL选项开启时间统计 5、声明与参考资料 『MSSQL·查询T-SQL语句执行时间的三种方法』 编写人 | SCscHero 编写时间 | 2021/5 ......
阅文时长 | 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执行时间。

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

d) 数据深度分析

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

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

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

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


MSSQL·查询T-SQL语句执行时间的三种方法
----来自《sqlserver 查看sql语句的执行时间》

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

sqlserver 查看sql语句的执行时间

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

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