【查询优化】怎样用SQL语句查看查询的性能指标

news/2024/7/3 7:17:16

一、SET STATISTICS IO  (有关TSQL语句查询所产生的磁盘活动量)

--显示有关由Transact-SQL 语句生成的磁盘活动量的信息

SET STATISTICS IO ON

--关闭有关由Transact-SQL 语句生成的磁盘活动量的信息

SET STATISTICS IO OFF

 

显示的信息如下:

(SQL语句为:select * from note500)

 

其中:

     扫描计数:在查询中涉及到的表被访问的次数;

     逻辑读取:从数据缓冲中读取的数据页数;

     物理读取:从物理磁盘中往缓冲读取的数据页数;

     预读:根据执行计划从物理磁盘中往缓冲读取的数据页数;

     其中对于首次查询一般情况下会有一下关系:逻辑读取=物理读取+预读(其中的具体联系,由于已经在之前的博客文章中提到,就不再详细说明(文章名为【查询优化】MSSQL查询执行流程))

     同理,后面的lob逻辑读取、物理读取、预读概念理解差不多,只是是对相应表进行更新或插入操作时体现。

 

     对于扫描计数,以上图片的查询没有连接查询,因此意义不大。不过,如果连接查询来说,特别是循环查询那种,比如说自连接,如果循环次数越多,则扫描次数也就越多,则会使得查询的效率越低。这是扫描计数是一个比较重要的性能体现参数。

     对于逻辑读取,由于SQLSERVER中对数据进行任何操作都要把数据读入到缓冲当中,如果逻辑读取的页数越多,则查询的性能越低。为此,逻辑读取一般都是查询性能体现的一个重要参数。

 

二、SET STATISTICS TIME  (SQL Server解析和编译时间)

 

面显示的信息表明,执行这次查询使用了多少CPU运行时间和运行查询使用了多少时间。CPU运行时间是对运行查询所需要的CPU资源的一种相对稳定的测量方法,与CPU的忙闲程度没有关系。但是,每次运行查询时这一数字也会有所不同,只是变化的范围没有总时间变化大。总时间是对查询执行所需要的时间(不计算阻塞或读数据的时间),由于服务器上的负载是在不断变化的,因此这一数据的变化范围有时会相当地大。

总的来说,量化地来看一个查询语句的性能可以在几个参数进行比较:

1、CPU时间。比较查询所要占用的CPU资源时间;

2、I/O。可以比较查询的循环扫描次数和逻辑读取的数据量;


http://www.niftyadmin.cn/n/2001463.html

相关文章

Python学习笔记16—电子表格

openpyl 模块是解决 Microsoft Excel 2007/2010 之类版本中扩展名是 Excel 2010 xlsx/xlsm/xltx/xltm 的文件的读写的第三方库。 安装 pip install openpyxl workbook 和 sheet的建立 引入模块 >>> from openpyxl import Workbook 建立工作薄 >>> wb Workbo…

《JavaScript语言精粹》内容精选

最近在读《JavaScript语言精粹》这本书,作者是 Douglas Crockford;Douglas Crockford是一名来自 Yahoo!的资深JavaScript架构师,以创建和维护JSON(JavaScript object notation)格式而为大家所熟知。他会定期…

散记 ~ 2016-09-23

可能有人会疑惑?我以前文章不都是偏向项目系列的,现在怎么都有点偏了? 其实没有偏,而是真切的方向~~》 程序本来的目的就是便利生活,那么生活中遇到问题那么也就可以用程序来解决,解决方法多样,…

mysql5.7 编译安装

下载编译包: 内网地址: wget 192.168.101.66/pack/mysql-5.7.14.tar.gz 外网地址: wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.14.tar.gz 解压: tar zxvf mysql-5.7.14.tar.gz 进入编译文件夹: cd mysql…

前端使用js读取文件

最近同事问我js能不能读取本地文件&#xff1b; 想起以前看到js读取本地文件的文章&#xff0c;然后自己写了个demo。 ps:这有点像Java的IO流&#xff0c;但是又有差别。 首先我们定义一个input标签type"file" 1 jsReadFile:<input type"file" onchange…

Power BI+Office 365开启“教学大数据”模式(世纪互联)

在去年我们曾经写过一篇名为Power BIOffice 365开启“教务管理大数据”模式&#xff08;世纪互联&#xff09;的文章&#xff0c;得到了很好的反响。但是这个方法只局限能实现在线调查而不能实现在线测试。如何实现在线测试这个功能也是我们一直在思考的。 今天在一次偶然的机会…

Redis缓存服务部署

redis缓存服务部署转载于:https://blog.51cto.com/luchunning/1857690

将textField编辑完内容作为参数发送请求

将textField编辑完内容作为参数发送请求 首先赋值默认值 其次把编辑完的内容传给model,这样的话,model里面的数据就是编辑完之后的内容了