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

一、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。可以比较查询的循环扫描次数和逻辑读取的数据量;

时间: 2024-10-13 00:10:41

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

怎样用SQL语句查看查询的性能指标

一.SET STATISTICS IO  (有关TSQL语句查询所产生的磁盘活动量) 扫描计数:在查询中涉及到的表被访问的次数: 逻辑读取:从数据缓冲中读取的数据页数: 物理读取:从物理磁盘中往缓冲读取的数据页数: 预读:根据执行计划从物理磁盘中往缓冲读取的数据页数: --显示有关由Transact-SQL 语句生成的磁盘活动量的信息 SET STATISTICS IO ON --关闭有关由Transact-SQL 语句生成的磁盘活动量的信息 SET STATISTICS IO OFF 二.SE

sql server 性能调优之 SQL语句阻塞查询

原文:sql server 性能调优之 SQL语句阻塞查询 在生产环境下,有时公司客服反映网页半天打不到,除了在浏览器按F12的Network响应来排查,确定web服务器无故障后.就需要检查数据库是否有出现阻塞 当时数据库的生产环境中主表数据量超过2000w,子表数据量超过1亿,且更新和新增频繁.再加上做了同步镜像,很消耗资源. 这时就要新建一个会话,大概需要了解以下几点: 1.当前活动会话量有多少? 2.会话运行时间? 3.会话之间有没有阻塞? 4.阻塞时间 ? 查询阻塞的方法有很多.有sql

SQL Server之 (二) SQL语句 模糊查询 空值处理 聚合函数

(二) SQL语句  模糊查询  空值处理  聚合函数 自己学习笔记,转载请注明出处,谢谢!---酸菜 SQL :结构化查询语言(Structured Query Language),关系数据库管理系统的标准语言. Sybase与Mircosoft对标准SQL做了扩展:T-SQL (Transact-SQL); 注:①SQL对大小写的敏感取决于排序规则,一般不敏感; ②SQL对单引号的转义,用两个单引号来表示一个单引号; ③SQL执行顺序: 1→2→3→4 select  * ---------

sql语句联合查询详解

sql语句联合查询详解 2011-03-01 18:58:22|  分类: mysql|举报|字号 订阅 例子: person表和user表没有约束person表: user表: 有以下几种关联 1.UNION 格式:查询语句 UNION [ALL] 查询语句 [UNION [ALL] 查询语句][…n] 说明:ALL选项表示将所有行合并到结果集合中.不指定该项时,被联合查询结果集合中的重复行将只保留一行. 在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序.例

在Hibernate中使用HibernateTemplate来进行包含sql语句的查询

/**     * 使用sql语句进行查询操作     * @param sql     * @return     */    public List queryWithSql(final String sql){        List list = hibernateTemplate.executeFind(new HibernateCallback() {            public Object doInHibernate(Session session) throws Hib

如何在 Linux 上用 SQL 语句来查询 Apache 日志

Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么.的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源.我们将在这篇文章中着重讲解 Apache HTTP web server 生成的 Apache access 日志. 这次,我们会通过另类的途径来分析 Apache access 日志,我们使用的工具是 asql.asql 是一个开源的工具,它能够允许使用者使用 SQL 语句来查询日志,从而通过更加友好的格式展现相同

SQL语句之查询(SELECT)

目录 SQL语句之查询(SELECT) 简单查询 限定查询 模糊查询 排序查询 多表查询 SQL语句之查询(SELECT) SQL是用于访问和处理数据库的标准计算机语言: 中文:结构化查询语言:英文全称:Structured Query Language: 而其中的核心就是查询. 简单查询 SELECT 字段,字段,字段... [SELECT 子句] FROM EMP;(数据来源) [FROM 子句] 以上两个语句执行时,先执行FROM子句,再执行SELECT子句. 当查询所有字段信息时可以使用

web day15 数据库概述,MySQL,SQL语句,数据查询语法DQL

数据库管理系统(DBMS)的概述 1. 什么是DBMS:数据的仓库 > 方便查询 > 可存储的数据量大 > 保证数据的完整.一致 > 安全可靠 2. DBMS的发展:今天主流数据库为关系型数据库管理系统(RDBMS 使用表格存储数据) 3. 常见DBMS:Orcale.MySQL.SQL Server.DB2.Sybase 4. DBMS = 管理程序 + 多个数据库(DB) 5. DB = 多个table(不只是table,但这里先不介绍其他组成部分) 6. table的结构(即

如何使用SQLPLUS分析SQL语句(查询执行计划跟踪)

方法一:autotrace 1,  connect sys/密码 as sysdba,在sys用户下运行$ORACLE_HOME/sqlplus/admin/plustrce.sql这段sql的实际内容如下:set echo ondrop role plustrace;create role plustrace;grant select  on v_$sesstat to plustrace;grant select on v_$statname to plustrace;grant selec