阅文时长 | 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语句的执行时间

sqlserver 查看脚本执行时间

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

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

MSSQL·查询T-SQL语句执行时间的三种方法的更多相关文章

  1. PHP设置脚本最大执行时间的三种方法

    php.ini 中缺省的最长执行时间是 30 秒,这是由 php.ini 中的 max_execution_time 变量指定,如果脚本需要跑很长时间,例如要大量发送电子邮件,或者分析统计大量数据,服 ...

  2. sql语句优化的30种方法

    转载于:https://www.cnblogs.com/Little-Li/p/8031295.html 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的 ...

  3. 走向DBA[MSSQL篇] 从SQL语句的角度 提高数据库的访问性能

    原文:走向DBA[MSSQL篇] 从SQL语句的角度 提高数据库的访问性能 最近公司来一个非常虎的dba  10几年的经验 这里就称之为蔡老师吧 在征得我们蔡老同意的前提下  我们来分享一下蔡老给我们 ...

  4. 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理

    服务器文档下载zip格式   刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...

  5. FP 某段SQL语句执行时间超过1个小时,并报错:ORA-01652: 无法通过 128 (在表空间 TEMPSTG 中) 扩展

    一.出现如下两个错误:1.某一段SQL语句执行时间超过1个小时:2.一个小时后,提示如下错误:ORA-01652: 无法通过 128 (在表空间 TEMPSTG 中) 扩展 temp 段ORA-065 ...

  6. sqlserver 测试sql语句执行时间

    查看sql语句执行时间/测试sql语句性能 写程序的人,往往需要分析所写的SQL语句是否已经优化过了,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了. 通过设置S ...

  7. 查看SQL语句执行时间与测试SQL语句性能

    查看SQL语句执行时间与测试SQL语句性能 写程序的人,往往需要分析所写的SQL语句是否够优化.是否能提升执行效率,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了 ...

  8. MySql实现分页查询的SQL,mysql实现分页查询的sql语句 (转)

    http://blog.csdn.net/sxdtzhaoxinguo/article/details/51481430 摘要:MySQL数据库实现分页查询的SQL语句写法! 一:分页需求: 客户端通 ...

  9. oracle数据库查询日期sql语句(范例)、向已经建好的表格中添加一列属性并向该列添加数值、删除某一列的数据(一整列)

    先列上我的数据库表格: c_date(Date格式)     date_type(String格式) 2011-01-01                   0 2012-03-07         ...

随机推荐

  1. OpenCV图像处理中“找圆技术”的使用

    一.为什么"找圆"     圆是基本图形的一种,更为重要的是,自然情况下采集的图像,很少大量存在"圆":但凡存在的,大都是人工的,那么就必然代表特定的意义,从而 ...

  2. Python - 关于类(self/cls) 以及 多进程通讯的思考

    Python-多进程中关于类以及类实例的一些思考 目录 Python-多进程中关于类以及类实例的一些思考 1. 背景 2. Python 类中的函数 - staticmethod / classmet ...

  3. [.net] 关于Exception的几点思考和在项目中的使用(二)

    本文链接: https://www.cnblogs.com/hubaijia/p/about-exceptions-2.html 系列文章: 关于Exception的几点思考和在项目中的使用(一) 关 ...

  4. go中控制goroutine数量

    控制goroutine数量 前言 控制goroutine的数量 通过channel+sync 使用semaphore 线程池 几个开源的线程池的设计 fasthttp中的协程池实现 Start Sto ...

  5. 从应用层到网络层排查 Dubbo 接口超时全记录

    大家好,我是坤哥 我们常说面试造火箭,很多人对此提出质疑,相信大家看了这篇文章会明白面试造火箭的道理,这篇排查问题的技巧涉及到索引,GC,容器,网络抓包,全链路追踪等基本技能,没有这些造火箭的本事,排 ...

  6. Mybatis3源码笔记(三)Configuration

    1. XMLConfigBuilder 上一篇大致介绍了SqlSession的生成.在DefaultSqlSessionFactory的构造函数中就提到了Configuration这个对象.现在我们来 ...

  7. gitlab支持https最简单方法

    gitlab支持https方法 使用gitlab内部nginx直接支持https 通过外部nginx代理(本次使用的方法) 访问流程外部nginx--->gitlab的gitlab_workho ...

  8. H5小技巧之——巧用<a>标签锚链接(#锚点链接 #页面特定位置 #DOM定位 #hash路由中使用锚链接)

    #作者:矩阵鱼--代码中游泳的咸鱼 前端开发中,常遇到定位到页面某特定位置的需求,JavaScript提供的el.scrollIntoView() 和 el.scrollIntoViewIfNeede ...

  9. Redis系统学习之事物

    Redis事物操作 Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证: 批量操作在发送 EXEC 命令前被放入队列缓存. 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败, ...

  10. 1.4.18- HTML之特殊字符标签

    上面图片内容简单了解一下,下面我们看一段代码: <!DOCTYPE html> <html lang="en"> <head> <meta ...