如何按照 io 的cost center什么意思

对于语句的运行,除了执行计划本身,还有一些其他因素要考虑,例如语句的编译时间、执行时间、做了多少次磁盘读等。

如果DBA能够把问题语句单独测试运行,可以在运行前打开下面这三个开关,收集语句运行的统计信息。

这些信息对分析问题很有价值。


除了结果集之外,SQLSERVER还会返回下面这两段信息

大家知道SQLSERVER执行语句是分以下阶段:分析-》编译-》执行

根据表格的统计信息分析出比较合适的执行计划,然后编译语句,最后执行语句

下面说一下上面的输出是什么意思:


1、CPU时间 :这个值的含义指的是在这一步,SQLSERVER所花的纯CPU时间是多少。也就是说,语句花了多少CPU资源

2、占用时间 :此值指这一步一共用了多少时间。也就是说,这是语句运行的时间长短,有些动作会发生I/O操作,产生了I/O等待,

或者是遇到阻塞、产生了阻塞等待。总之时间用掉了,但是没有用CPU资源。所以占用时间比CPU时间长是很正常的 ,但是CPU时间是

语句在所有CPU上的时间总和。如果语句使用了多颗CPU,而其他等待几乎没有,那么CPU时间大于占用时间也是正常的

3、分析和编译时间:这一步,就是语句的编译时间。由于语句运行之前清空了所有执行计划,SQLSERVER必须要对他编译。

这里的编译时间就不为0了。由于编译主要是CPU的运算,所以一般CPU时间和占用时间是差不多的。如果这里相差比较大,

就有必要看看SQLSERVER在系统资源上有没有瓶颈了。

这里他们是一个15毫秒,一个是104毫秒

4、SQLSERVER执行时间: 语句真正运行的时间。由于语句是第一次运行,SQLSERVER需要把数据从磁盘读到内存里,这里语句的

运行发生了比较长的I/O等待。所以这里的CPU时间和占用时间差别就很大了,一个是171毫秒,而另一个是1903毫秒

总的来讲,这条语句花了104+3毫秒,其中CPU时间为15+171=186毫秒。语句的主要时间应该是都花在了I/O等待上

现在再做一遍语句,但是不清除任何缓存

这次比上次快很多。输出时间统计信息是:

由于执行计划被重用,“SQL分析和编译时间” CPU时间是0,占用时间是0

由于数据已经缓存在内存里,不需要从磁盘上读取,SQL执行时间 CPU时间是156,占用时间这次和CPU时间非常接近,是169。

这里省下运行时间4毫秒,从这里可以再次看出,缓存对语句执行性能起着至关重要的作用


这个开关能够输出语句做的物理读和逻辑读的数目。对分析语句的复杂度有很重要的作用

还是以刚才那个查询作为例子


扫描计数:执行的扫描次数。按照执行计划,表格被扫描了几次。一般来讲大表扫描的次数越多越不好。唯一的例外是如果执行计划选择了并发运行,

由多个thread线程同时做一个表的读取,每个thread读其中的一部分,但是这里会显示所有thread的数目。也就是有几个thread在并发做,

就会有几个扫描。这时数目大一点没问题的。

逻辑读取:从数据缓存读取的页数。页数越多,说明查询要访问的数据量就越大,内存消耗量越大,查询也就越昂贵。

可以检查是否应该调整索引,减少扫描的次数,缩小扫描范围

顺便说一下这个逻辑读取的统计原理:为什麽显示出来的结果的单位不是Page,也不是K或KB。SQLSERVER

里在做读和写的时候,会运行到某一段特定的代码。每调用一次这个代码,Reads/Write就会加1。所以这个值比较大

那语句一定做了比较多的I/O,但是不能通过这个值计算出I/O的绝对数量,这个值反映的是逻辑读写量不是物理读写量

物理读取:从磁盘读取的页数

预读:为进行查询而预读入缓存的页数

物理读取+预读:就是SQLSERVER为了完成这句查询而从磁盘上读取的页数。如果不为0,说明数据没有缓存在内存里。运行速度一定会受到影响

LOB物理读取:从磁盘读取的text、ntext、image、大值类型页的数目

LOB预读:为进行查询而放入缓存的text、ntext、image、大值类型页的数目

然后再来运行一遍,不清空缓存

这次逻辑读取不变,还是15064页。但是物理读取和预读都是0了。说明数据已经缓存在内存里
第二次运行不需要再从磁盘上读一遍,节省了时间


这是三个设置中返回最复杂的一个,他返回语句的执行计划,以及语句运行在每一步的实际返回行数统计。

通过这个结果,不仅可以得到执行计划,理解语句执行过程,分析语句调优方向,也可以判断SQLSERVER是否

选择了一个正确的执行计划。

返回的结果集很长,下面说一下重要字段


注意:这里是从最下面开始向上看的,也就是说从最下面开始一直执行直到得到结果集所以(行1)里的rows字段显示的值就是这个查询返回的结果集。

而且有多少行表明SQLSERVER执行了多少个步骤,这里有6行,表明SQLSRVER执行了6个步骤!!

Rows:执行计划的每一步返回的实际行数

Executes:执行计划的每一步被运行了多少次

StmtText:执行计划的具体内容。执行计划以一棵树的形式显示。每一行都是运行的一步,都会有结果集返回,也都会有自己的cost

EstimateRows:SQLSERVER根据表格上的统计信息,预估的每一步的返回行数。在分析执行计划时,

我们会经常将Rows和EstimateRows这两列做对比,先确认SQLSERVER预估得是否正确,以判断统计信息是否有更新

(包括这一步自己的cost和他的所有下层步骤的cost总和),下面介绍的cost说的都是这个字段值

Warnings:SQLSERVER在运行每一步时遇到的警告,例如,某一步没有统计信息支持cost预估等。

Parallel:执行计划的这一步是不是使用了并行的执行计划

从上面结果可以看出执行计划分成4步,其中第一步又分成并列的两个子步骤

因为表在这个字段上有一个聚集索引,所以SQL可以直接使用这个索引的seek

因为表在这个字段上有一个非聚集索引,所以SQL可以直接使用这个索引的seek

但是根据语义分析,SQL知道这个条件在[SalesOrderDetail_test]上也为真。所以SQL选择先把这个条件过滤然后再做join。这样能够大大降低join的cost

在这一步SQL预估返回50561条记录,实际返回50577条。cost是0.127,也不高

步骤b(第4行):将a1和a2两步得到的结果集做一个join。因为SQL通过预估知道这两个结果集比较大,所以他直接选择了Hash Match的join方法。

SQL预估这个join能返回50313行,实际返回50577行。因为SQL在两张表的[SalesOrderID]上都有统计信息,所以这里的预估非常准确

步骤c(第3行):在join返回的结果集基础上算count(*)的值这一步比较简单,count(*)的结果总是1,所以预测值是正确的。

其实这一步的cost是根据上一步(b)join返回的结果集大小预估出来的。我们知道步骤b的预估返回值非常准确,所以这一步的预估cost也不会有什么大问题

步骤b(第2行):将步骤c返回的值转换为int类型,作为结果返回

这一步是上一步的继续,更为简单。convert一个值的数据类型所要的cost几乎可以忽略不计。所以这棵子树的cost和他的子节点相等,都是0.745。

也就是说,他自己的cost是0

通过这样的方法,用户可以了解到语句的执行计划、SQL Server预估的准确性、cost的分布

VoL 第1期 机 电 元 件 30No.1 2010年3月 ELECTROMECHANICALc0M畔oNENTS MaL2010 介绍一种高密度低成本的下一代I/0连接器 闻春国编译 (四川华丰企业集团有限公司,四川 绵阳621000) 摘要:为适应网络技术的发展,人们开发出适用于GbE网络的输人/输出(I/O)连接器。它不仅可以提高 网络和通信设备的接口密度,减少传输过程中的EMI干扰,降低相关的制造成本。而且为网络系统的进一步升 级提供了条件。 关键词:I/0连接器;G比特以太网;PC电路板;接口密度;模块化插孔 中图分类号:TMS03+.5文献标识码:A 文章编号:10)01—0016一04 比特以太网,并实现其它网络的进一步升级。Tyco 1 引 言 电子公司开发的MRJ21微型PC电路板连接器,如 设计MRJ21连接器的目的在于提高电子器件 图1所示,可提供完全屏蔽和正向保持力的螺旋插 的封装密度,提高G比特以太网(GbE)的性能,并 孔硬件。该连接器可以应用于几乎所有的网络硬件 且减少其安装时间。I/0连接器技术的最近开发成 设备。这些网络硬件设备以前采用的是标准的叠层 果可以帮助人们解决网络升级和新网络设计中所存 式模块插孔产品或50芯RJ一2l连接器产品(图 在的许多问题。用于联网和通信的两个主要I/O互 2)。生产以太网开关、网络柜、路由器、数字式跨接 连器件是模块化插孔和“25对”RJ一2l连接器。这 器件、DSLAM及类似产品的原始设备制造商 类产品的品种繁多,其中RJ一45和脚一21型连接 (OEM)可以改变其原有的设计,以便接纳这种新型 器最为普遍。这些连接器可以提供必要的可靠性和 的MPd21连接器。 简洁性,并可以允许该器件在10/100Base—T带宽 范围内正常运行。 不过,随着这一G比特以太网系统的应用范围 日益广泛,现有RJ一45和RJ一2l互连器件的许多 不足之处也日益显现出来。为了适应通信网络产品 向G比特以太网时代大步跨越,现有的电子产品在 某些方面已经发生了演变,新型I/O连接器也已经 应运而生。目前,人们已经设计出一种适用于G比 特以太网应用的MRJ21型I/0连接器,从而使现有 图l Tyco电子公司开发的MRJ21 的RJ一21 I/0连接器的密度扩大到原来的3倍。 微型PC电路板连接器 不仅如此,它还有利于将现有的网络系统转换到G 收稿日期:2009—12—15 万方数据 第1期 闻春国:介绍一种高密度低成本的下一代I/O连接器 17 RJ一45连接器增大了一倍,这就使得每个1RU面 板可以产生总共多达48个可插入式接口。这样一 来就可以减少或简化接线板芯线线柬的数量。这对 于原设备制造商、设备安装人员和用

我要回帖

更多关于 cost center 的文章

 

随机推荐