orlace培训(高级).ppt
《orlace培训(高级).ppt》由会员分享,可在线阅读,更多相关《orlace培训(高级).ppt(53页珍藏版)》请在三一办公上搜索。
1、2015年4月,SQL性能调优,我们为什么这么苦逼,经常听到的抱怨系统很慢,业务跑不动了!同样的数据量,怎么还没有我的笔记本跑的快!测试系统上运行很快,怎么生产系统这么慢!才做过优化,怎么又慢了!咋搞的嘛,一会儿快一会儿慢,是不是系统有问题?,我们为什么这么苦逼,根本原因我们被拖上了关系型数据库这艘“贼船”关系型数据库的特点以关系代数为理论设计基础逻辑简单,容易上手结构灵活,易于调整,我们为什么这么苦逼,近十年关系数据库的显著变化支持海量数据存储优化器更“智能”一切都交给它它做的多了,需要我们考虑的就少了,问题也就来了!,SQL语句是如何被执行的,SQL语句是如何被执行的,Evaluation
2、 fo expressons and conditionsStatement transformationChoice of optimizer approachesChoice of access pathsChoice of join ordersChoice of join methods,SQL语句是如何被执行的,Access PathsRANK 1:Single Row by RowidRANK 2:Single Row by Cluster JoinRANK 3:Single Row by Hash Cluster Key with Unique or Primary KeyRAN
3、K 4:Single Row by Unique or Primary KeyRANK 5:Clustered JoinRANK 6:Hash Cluster KeyRANK 7:Indexed Cluster KeyRANK 8:Composite Index,SQL语句是如何被执行的,RANK 9:Single-Column IndexesRANK 10:Bounded Range Search on Indexed ColumnsRANK 11:Unbounded Range Search on Indexed ColumnsRANK 12:Sort Merge JoinRANK 13:
4、MAX or MIN of Indexed ColumnRANK 14:ORDER BY on Indexed ColumnRANK 15:Full Table Scan,SQL语句是如何被执行的,Join Methods,优化器现在已经很智能,为什么还需要优化,其实,针对业务系统的数据应用,你比它了解的更多它永远无法预测业务流程、业务场景的变化它不会主动适应政策法规在一定程度上,它只会按照我们的指令行事,影响优化器生成执行计划的要素,内在因素表的结构定义表的物理存储结构数据量数据操作特性数据分布特性,影响优化器生成执行计划的要素,外在因素可用系统资源(静态)系统工作负载(动态)索引统计信息S
5、QL语句的复杂程度,SQL语句的优化过程,定位有问题的语句检查执行计划和统计信息分析相关表的记录数、索引情况改写SQL语句、使用HINT、调整索引、表分析有些SQL语句不具备优化的可能,需要优化处理方式达到最佳执行计划,SQL语句的优化规则,一个“好 SQL语句”的评价标准第一:逻辑正确(最基本的要求)第二:语法清晰(简单为王;便于知识转移、后期维护)第三:时间响应快(性能的基本要求)第四:资源消耗少(最高境界),SQL语句的优化规则,规范书写大小写风格、注释、缩排规则等,SQL语句的优化规则,提高优化器使用索引的概率避免对索引列进行计算例:X WHERE sal*1.1 950O WHERE
6、 sal 950/1.1X WHERE substr(name,1,7)=CAPITALO WHERE name LIKE CAPITAL%,SQL语句的优化规则,提高优化器使用索引的概率注意比较值与索引列数据类型的一致性例:emp_no:NUMBER型O WHERE emp_no=123(好)O WHERE emp_no=123(也可)emp_type:CHAR型X WHERE emp_type=123(查询时不利用索引列)O WHERE emp_type=123,SQL语句的优化规则,提高优化器使用索引的概率尽量避免使用NULL例:X WHERE comm IS NOT NULLX WHE
7、RE comm IS NULLO WHERE comm=0,SQL语句的优化规则,提高优化器使用索引的概率尽量避免使用NOT=和!=例:X WHERE deptno!=0O WHERE deptno 0,SQL语句的优化规则,提高优化器使用索引的概率对于复合索引,必须使用主索引列例:复合索引(deptno,job)O WHERE deptno=20 AND job=MANAGERO WHERE deptno=20O WHERE job=MANAGER AND deptno=20X WHERE job=MANAGER,SQL语句的优化规则,提高优化器使用索引的概率ORDER BY子句例:O 子句
8、中,列的顺序与索引列的顺序一致。O 子句中,列应为非空列。,SQL语句的优化规则,使用表的别名来引用列例:X SELECT abc002,abd003 FROM ab001,ab020 WHERE ab001.col2=ab020.col3.O SELECT t1.abc002,t2.abd003 FROM ab001 t1,ab020 t2 WHERE t1.col2=t2.col3.,SQL语句的优化规则,考虑用NOT EXISTS代替NOT IN例:X SELECT.FROM emp WHERE dept_no NOT IN(SELECT dept_no FROM dept WHERE
9、dept_cat=A);O SELECT.FROM emp e WHERE NOT EXISTS(SELECT X FROM dept WHERE dept_no=e.dept_no AND dept_cat=A);,SQL语句的优化规则,考虑用多表连接代替EXISTS子句例:X SELECT.FROM emp e WHERE EXISTS(SELECT X FROM dept WHERE dept_no=e.dept_no AND dept_cat=A);O SELECT.FROM emp e,dept d WHERE e.dept_no=d.dept_no AND d.dept_cat=A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- orlace 培训 高级
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5348706.html