Sql Server- 性能优化辅助指标SET STATISTICS TIME ON和SET STATISTICS IO ON
1.前言
对于优化SQL语句或存储过程,以前主要是用如下语句来判断具体执行时间,但是SQL环境是复杂多变的,下面语句并不能精准判断性能是否提高;如果需要精确知道CPU、IO等信息,就无能为力了。
|
1
2
3
|
PRINT convert(varchar(30),getdate(),121)select * from Sales.SalesOrderDetail where SalesOrderID > 64185PRINT convert(varchar(30),getdate(),121) |
这时候如果使用SET STATISTICS TIME ON和SET STATISTICS IO ON 指令就能清楚的知道了,在测试之前需执行下面2条命令
DBCC DROPCLEANBUFFERS 清除缓冲区
DBCC FREEPROCCACHE 删除计划高速缓存中的元素
2.测试
2.1 首先执行下面脚本
|
1
2
3
4
5
6
7
|
--开启统计信息SET STATISTICS TIME ONSET STATISTICS IO ONGOselect * from Sales.SalesOrderDetail where SalesOrderID > 64185GO |
结果如下
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
--1.SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 53 毫秒。--2.SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。(35292 行受影响)--3.表 'SalesOrderDetail'。扫描计数 1,逻辑读取 337 次,物理读取 4 次,预读 333 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。--4. SQL Server 执行时间: CPU 时间 = 47 毫秒,占用时间 = 893 毫秒。 |
说明:
标记1:表示将语句的结果放到SQL缓冲区所需要的CPU时间和总时间
标记2:标识从缓冲区中取出解析结果所需要的时间
标记4:标识这次查询使用了多少CPU时间和总的时间,其中CPU时间是对查询所需CPU资源的一种比较稳定的测量方式;总时间则跟SQL服务器有关,因此比较不稳定;所以性能判断的时候可以以CPU时间来做标准。
标记3:资源时间;其中逻辑读是指SQL从缓冲区读取的数据;物理读是指从数据从磁盘读取到缓冲区中;
2.2 再次运行查询语句结果如下,由于第一次执行的时候,数据已经从磁盘读取到缓冲区,因此标记1的时间也就是0了,标记3物理读也为0了。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
--1.SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。--2.SQL Server 分析和编译时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。(35292 行受影响)--3.表 'SalesOrderDetail'。扫描计数 1,逻辑读取 337 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。--4. SQL Server 执行时间: CPU 时间 = 32 毫秒,占用时间 = 848 毫秒。 |
2.3 在优化SQL语句的时候可以从CPU时间,逻辑读取数来判断性能是否提升,而且这2个指标是比较真实的反映了SQL执行情况的。这里只是简单介绍了一下这2个命令的一些基本信息,则需更加深入了解SQL底层知识。
Sql Server- 性能优化辅助指标SET STATISTICS TIME ON和SET STATISTICS IO ON的更多相关文章
- Sql Server性能优化辅助指标 - SET STATISTICS TIME ON和SET STATISTICS IO ON
1.前言 对于优化SQL语句或存储过程,以前主要是用如下语句来判断具体执行时间,但是SQL环境是复杂多变的,下面语句并不能精准判断性能是否提高:如果需要精确知道CPU.IO等信息,就无能为力了. ), ...
- Sql Server性能优化辅助指标SET STATISTICS TIME ON和SET STATISTICS IO ON
1.前言 对于优化SQL语句或存储过程,以前主要是用如下语句来判断具体执行时间,但是SQL环境是复杂多变的,下面语句并不能精准判断性能是否提高:如果需要精确知道CPU.IO等信息,就无能为力了. ), ...
- SQLServer------Sql Server性能优化辅助指标SET STATISTICS TIME ON和SET STATISTICS IO ON
转载: http://www.cnblogs.com/xqhppt/p/4041799.html
- SQL SERVER性能优化综述
SQL SERVER性能优化综述 一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意,进行有效工作才能达到的.所以我希望按照软 ...
- SQL Server 性能优化之——系统化方法提高性能
SQL Server 性能优化之——系统化方法提高性能 阅读导航 1. 概述 2. 规范逻辑数据库设计 3. 使用高效索引设计 4. 使用高效的查询设计 5. 使用技术分析低性能 6. 总结 1. 概 ...
- 【SQL Server性能优化】运用SQL Server的全文检索来提高模糊匹配的效率
原文:[SQL Server性能优化]运用SQL Server的全文检索来提高模糊匹配的效率 今天去面试,这个公司的业务需要模糊查询数据,之前他们通过mongodb来存储数据,但他们说会有丢数据的问题 ...
- SQL Server 性能优化(一)——简介
原文:SQL Server 性能优化(一)--简介 一.性能优化的理由: 听起来有点多余,但是还是详细说一下: 1.节省成本:这里的成本不一定是钱,但是基本上可以变相认为是节省钱.性能上去了,本来要投 ...
- SQL Server性能优化与管理的艺术 附件下载地址
首先感谢读者们对鄙人的支持,购买了<SQL Server性能优化与管理的艺术>,由于之前出版社的一些疏忽,附件没有上传成功,再次本人深表歉意. 请需要下载附件的读者从下面链接下载,谢谢: ...
- SQL Server性能优化(6)查询语句建议
1. 如果对数据不是工业级的访问(允许脏读),在select里添加 with(nolock) ID FROM Measure_heat WITH (nolock) 2. 限制结果集的数据量,如使用TO ...
- SQL Server 性能优化之RML Utilities:快速入门(Quick Start)(1)
SQL Server 性能优化之RML Utilities:快速入门(Quick Start)(1) 安装Quick Start工具 RML(Replay Markup Language)是MS ...
随机推荐
- 优雅的处理你的Java异常
本文介绍 本文仅按照业务系统开发角度描述异常的一些处理看法.不涉及java的异常基础知识,可以自行查阅 <Java核心技术 卷I> 和 <java编程思想> 可以得到更多的基础 ...
- BeanFactory笔记
BeanFactory是一个工厂接口,在spring中,BeanFactory是IOC容器的核心接口,功能是:实例化.定位.配置应用程序中的对象及建立这些对象间的依赖,但它并不是IOC容器的具体实现, ...
- 20145310 GDB调试汇编堆栈分析
GDB调试汇编堆栈分析 由于老师说要逐条分析汇编代码,所以我学习卢肖明同学的方法,重新写了一篇博客. 代码: #include<stdio.h> short addend1 = 1; st ...
- MR案例:链式ChainMapper
类似于Linux管道重定向机制,前一个Map的输出直接作为下一个Map的输入,形成一个流水线.设想这样一个场景:在Map阶段,数据经过mapper01和mapper02处理:在Reduce阶段,数据经 ...
- Metasploit安装——centos6.5
1:安装ruby yum -y install ruby 2:根据官方文档执行,安装支持包 yum install xorg-x11-server-Xvfb -y 3:官网下载最新版的Metaspl ...
- myEclipse项目转成Eclipse项目
这里说一种把myEclipse项目转成Eclipse项目继续开发 1. 请首先确保你的eclipse是javaee版本的,或者已经安装看wtp插件 2. 然后修改eclipse工程下的.proje ...
- linux之磁盘配额(quota)使用方法(转)
1.什么是quota 简单的说就是限制用户对磁盘空间的使用量. 因为Linux是多用户多任务的操作系统,许多人共用磁盘空间,为了合理的分配磁盘空间,于是就有了quota的出现. 2.quota的用途 ...
- linux 忘记登陆密码
声明:如果不是远程登陆,机器在自己身边还有救. 第一步:重启机器,进入brug界面(grub是一个引导管理程序,可以引导linux.winxp等系统,在/boot/grub/中的menu.lst中进行 ...
- 分词工具比较及使用(ansj、hanlp、jieba)
一.分词工具 ansj.hanlp.jieba 二.优缺点 1.ansj 优点: 提供多种分词方式 可直接根据内部词库分出人名.机构等信息 可构造多个词库,在分词时可动态选择所要使用的词库缺点: 自定 ...
- Python 实现C语言 while(scanf("%d%d", &a, &b) != EOF) 语句功能
reference:Python 实现C语言 while(scanf("%d%d", &a, &b) != EOF) 语句功能 在python中,无法通过input ...