Sqlserver查询性能分析-2023修改整理_第1页
Sqlserver查询性能分析-2023修改整理_第2页
Sqlserver查询性能分析-2023修改整理_第3页
Sqlserver查询性能分析-2023修改整理_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

千里之行,始于足下让知识带有温度。第第2页/共2页精品文档推荐Sqlserver查询性能分析Sqlserver查询性能分析(执行结果分析)

1、办法

在查询窗口中输入以下命令

dbccdropcleanbuffers--解释:清除数据

dbccfreeproccache--解释:清除缓存

这是为了每次查询时,不会由于重复查询对结果有干扰,接着在窗口中输入以下命令。

Setstatisticsioon--解释:开启系统资源使用统计

Setstatisticstimeon--解释:开启执行时光统计

然后在窗口中输入查询命令

如:SELECTTOP1000000*FROM[SearchInfo]

在消息框中就会浮现如下结果

SQLServerparseandcompiletime:

CPUtime=0ms,elapsedtime=0ms.

(999999row(s)affected)

Table'SearchInfo'.Scancount1,logicalreads17890,physicalreads29,read-aheadreads17309,loblogicalreads0,lobphysicalreads0,lobread-aheadreads0.

SQLServerExecutionTimes:

CPUtime=2153ms,elapsedtime=22354ms.

2、参数

SQLServerparseandcompiletime

这是指sqlserver解析语句的时光。(999999row(s)affected)查询到的数据量,这个你知道咯,只要你的目的是明确的,那么查询到的数据量应当是不变的,假如转变,那么你的规律是不全都的对不对!

Table'SearchInfo'.Scancount1,logicalreads17890,physicalreads29,read-aheadreads17309,loblogicalreads0,lobphysicalreads0,lobread-aheadreads0.

这一串表示什么呢,

表示数据表'SearchInfo',扫描1次(Scancount)在规律区读取了17890次(logicalreads)在物理区读取了29次(physicalreads)提前读取17309次(read-aheadreads)loblogicalreads0,lobphysicalreads0,lobread-aheadreads0.

100万条数据一致是0,你懂的,忽视它吧

那这串数据中没被忽视的哪些实用呢,表的扫描次数Scancount实用的,查询次数的多少表示这个资源你用了多少次,规律区读取次数十分实用,我们知道,SQLServer在可以对任何数据举行操作前,必需首先把数据读取到其数据缓冲区中。此外,我们也知道SQLServer何时会从数据缓冲区中读取数据,并把数据读取到大小为8K字节的页中。LogicalReads是指SQLServer为得到查询中的结果而必需从数据缓冲区读取的页数。在执行查询时,SQLServer不会读取比实际需求多或少的数据,因此,当在相同的数据集上执行同一个查询,得到的LogicalReads的数字总是相同的。

物理区读取咱忽视它吧,为什么呀?

SQLServer在执行查询时所需要的物理区读取次数不行能通过性能调整而削减的。削减物理读的次数是DBA的一项重要工作,但它涉及到囫囵服务器性能的调整,而不仅仅是查询性能的调整。在举行查询性能调整时,我们不能控制数据缓冲区的大小或服务器的劳碌程

度以及完成查询所需要的数据是在数据缓冲区中还是在磁盘上,唯一我们能够控制的数据是得到查询结果所需要执行的规律读的次数。

提前读也是个无关紧要的东西,就算要紧,你也没方法,他是sqlserver自动优化的一个结果值,你干扰不了,停了吧,孩子

SQLServerExecutionTimes:

CPUtime=2153ms,elapsedtime=22354ms.

这上面的就是数据库查询执行的的时光,这是相当关键的数据啊,要哪个,还是两个都要,贪心了吧,看看什么意思吧。CPUTime指的是CPU在忙于执行当前任务的时光,其并没有考虑等待时光,如IO等待,网络等待等,而ElapsedTime则是执行当前任务所花费的总时光,也就是说这两者的关系统可以表示为:ElapsedTime=CpuTime+WaitTime但是在多核处理器的状况下,因为多个CPU同时处理任务所以可能会浮现CpuTime大于ElapsedTime的状况而在服务器上执行查询时,会用到许多种服务器资源。其中的一种资源是CPU的占用时光,假设数据库没有发生任何转变,反复地运行同一个查询其CPU的占用时光将是非常临近的。在这里,我指的不是一个查询从运行开头到结束的时光,而是指运行这一查询所需要的CPU资源数量,运行一个查询所需要的时光与服务器的劳碌程度有关。而ElapsedTime因为系统的运行繁忙等,时光上来说很难在结果上说明什么

总结下吧,这些数据是实用的

row(s)affected)你参考对照的基础,这个不全都,数据对照无意义

(Scancount)扫描次数,资源用了多少次,越少越好

(logicalreads)规律读取了多少次,越少越好

(ExecutionTimes:CPUtime)cpu运行时光,越少越好

3、数据统计分析

接下来就是数据统计分析,你要对不同的状况举行分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论