博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
set statistics profile on实例
阅读量:6257 次
发布时间:2019-06-22

本文共 1488 字,大约阅读时间需要 4 分钟。

set statistics profile on实例

 

1、SQL语句实例

 
SQL 代码   
复制
 
SET STATISTICS PROFILE ON GO SELECT COUNT(b.[SalesOrderID]) FROM [dbo].[SalesOrderHeader_test] a INNER JOIN [dbo].[SalesOrderDetail_test] b ON a.[SalesOrderID]=b.[SalesOrderID] WHERE a.[SalesOrderID]>43659 AND a.[SalesOrderID]<53660 GO

 

2、返回的结果集中重要字段

 

 

 

3、备注

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

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

  

4、分析

 

上面的执行计划可以分为以下几步

 

1、(第5行):从[SalesOrderHeader_test]表里找出所有a.[SalesOrderID]>43659 AND a.[SalesOrderID]<53660的值

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

SQL预测返回10000条记录,实际也就返回了10000条记录.。这个预测是准确的。这一步的cost是0.202(totalsubtreecost)

 

2、(第6行):从[SalesOrderDetail_test]表里找出所有 a.[SalesOrderID]>43659 AND a.[SalesOrderID]<53660的值

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

虽然查询语句只定义了[SalesOrderHeader_test]表上有a.[SalesOrderID]>43659 AND a.[SalesOrderID]<53660过滤条件,但是根据语义分析,SQL知道这个条件在[SalesOrderDetail_test]上也为真。所以SQL选择先把这个条件过滤然后再做join。这样能够大大降低join的cost

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

 

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

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

这一步的cost等于totalsubtreecost减去他的子步骤,0.715-0.202-0.127=0.386。由于预估值非常准确,可以相信这里的cost就是实际每一步的cost

 

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

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

这棵子树的cost是0.745,减去他的子节点cost,他自己的cost是0.745-0.715=0.03。是花费很小的一步

 

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

转载地址:http://kznsa.baihongyu.com/

你可能感兴趣的文章
LinuxC下获取UDP包中的路由目的IP地址和头标识目的地址
查看>>
【原创】使用 VS 编译遇到的一些 error 和 warning(持续更新)
查看>>
Windows快捷键高手用法
查看>>
Cocos2d-x3.2 EditBox的使用
查看>>
使用StrutsSpringTestCase测试框架报错
查看>>
深入理解计算机系统-之-数值存储(三)-- 原码、反码、补码和移码详解
查看>>
Linux应用笔记:Linux下设置和查看环境变量
查看>>
SQL挑战——如何高效生成编码
查看>>
集群调度技术研究综述
查看>>
云架构和openstack的思考
查看>>
ORACLE清理、截断监听日志文件(listener.log)
查看>>
设计模式[21]-Factory Method
查看>>
改善系统的通知中心
查看>>
物理引擎中velocity的单位是个什么鬼?
查看>>
window平台下的MySQL快速安装。(不好意思,未完成待续,请飘过)
查看>>
打开图片选择器并裁减图片取出图片
查看>>
小菜一步一步学数据结构之(六)队列
查看>>
分布式系统(Distributed System)资料
查看>>
2015-03 月份学习总结
查看>>
HTML对字体的所有操作详解(经典)
查看>>