SQL Server性能调优杂记(一)----傻瓜机的失效效应
2008-12-08 10:15:23 来源:WEB开发网核心提示: 2个执行计划的唯一差别就是图中的2个Paralism(数据库服务器是8个CPU),即我的那句SQL采用了并行装载数据的方法,SQL Server性能调优杂记(一)----傻瓜机的失效效应(3),而第一中没有使用并行装载,原因很简单,就好比傻瓜照相机还是用的人多,但是你要懂得傻瓜机也有判断失
2个执行计划的唯一差别就是图中的2个Paralism(数据库服务器是8个CPU)。即我的那句SQL采用了并行装载数据的方法。而第一中没有使用并行装载。原因很简单,因为执行计划分析器认为前面这句SQL执行代价很小,而我的执行代价很高。因此进行了区别对待,前者不需要动用硬件资源,后者则需要动用硬件资源。这就是失效效应。而一般认为慢就是因为硬件不够,在这里充分体现是无稽之谈。至少性能问题只有5%甚至更低的情况才和硬件有关。
至于这个代价估算的计算方法,只有查具体的技术文件,大体应该和数据大小,索引大小,逻辑读写,物理读写,CPU资源有关。因为是估算,因此有偏差很正常。
那么解决这个问题,加索引才是正途。这就是我前面讲到的原则。通过加索引,执行计划发生了变化。见下图。
增加索引后的速度结果飞快。
Paralism和索引的概念就好比,在南京路上找某户户主是王五,Paralism是出动16个警察,而索引就好比一个警察拿户籍登记册找。一个是拥有资源多而致胜,一个是工作方法好而致胜。
从这里可以看出,性能调优起始是一个根据实际情况进行平衡选择的过程,武断认为就是加索引,提升硬件都说明你不了原理。对了也只是运气好。
总结这个例子,失效效应就是CBO带来的一个有趣的现象。显然CBO要用,但是要去学习明白它的原理和特点。就好比傻瓜照相机还是用的人多,但是你要懂得傻瓜机也有判断失误的时候,所以要用“白加黑减”的曝光补偿。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接