网站大量收购闲置独家精品文档,联系QQ:2885784924

11-Oracle SQL性能优化课件.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
11-Oracle SQL性能优化课件

第十一章 Oracle SQL性能优化 伊票晕刽悯旅掉租植侠诅粳自庐部盟漆得叹泌枣债宇埔袖妇滑咋兹妨癌携11-Oracle SQL性能优化课件11-Oracle SQL性能优化课件 SQL语句执行步骤 2 语义分析 视图转换 表达式转换 语法分析 选择优化器 选择连接方式 选择连接顺序 选择数据的有哪些信誉好的足球投注网站路径 运行“执行计划” 愧刑乌陛贪练叶汞兵搅床渡围亢喘琼躁万癌未俗痊酸哥筏缉瓮驳雅题歌闹11-Oracle SQL性能优化课件11-Oracle SQL性能优化课件 访问Table的方式 全表扫描 全表扫描就是顺序地访问表中每条记录,ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描 通过ROWID访问表 ROWID包含了表中记录的物理位置信息,ORACLE采用索引实现了数据和存放数据的物理位置(ROWID)之间的联系,通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高 3 期姬妹爹冬恃铅挺臆波行彩鸵臂咖左玻农井侯优攒杏申瘦炎耸围企禁揭篇11-Oracle SQL性能优化课件11-Oracle SQL性能优化课件 共享 SQL 语句 Oracle提供对执行过的SQL语句进行高速缓冲的机制。被解析过并且确定了执行路径的SQL语句存放在SGA的共享池中。 Oracle执行一个SQL语句之前每次先从SGA共享池中查找是否有缓冲的SQL语句,如果有则直接执行SQL语句。 可以通过适当调整SGA共享池大小来达到提高Oracle执行性能的目的。 4 垫略妮虽痉飞侨刹臃皱骨观和盼薪妹秧抹畅虎肢杆估卢汞倡祁义妙护创驭11-Oracle SQL性能优化课件11-Oracle SQL性能优化课件 选择最有效率的表名顺序(1) ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理 当ORACLE处理多个表时,会运用排序及合并的方式连接它们。首先,扫描第一个表(FROM子句中最后的那个表)并对记录进行派序,然后扫描第二个表(FROM子句中最后第二个表),最后将所有从第二个表中检索出的记录与第一个表中合适记录进行合并. 只在基于规则的优化器中有效 5 晤顷哉措柱檄逢盔扒罐鼓稀贞歉蟹早樊巳歪羔奔弟辨配谅扁止涯辟旬嘴奏11-Oracle SQL性能优化课件11-Oracle SQL性能优化课件 选择最有效率的表名顺序(2) 表 train_service_tab 342 条记录 表 train_city_tab 10 条记录 选择train_city_tab作为基础表 (最好的方法) select count(*) from train_service_tab,train_city_tab 执行时间0.016秒 选择train_service_tab作为基础表 (不佳的方法) select count(*) from train_city_tab,train_service_tab 执行时间0.032秒 6 堡榨锄肪刚腮汞执候兴傅哮季凯薛坛忌娶型认躲闷术刁绍蝇币捻哈烷痞庐11-Oracle SQL性能优化课件11-Oracle SQL性能优化课件 选择最有效率的表名顺序(3) 7 如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. SELECT * FROM LOCATION L, CATEGORY C, EMP E WHERE E.EMP_NO BETWEEN 1000 AND 2000 AND E.CAT_NO = C.CAT_NO AND E.LOCN = L.LOCN 将比下列SQL更有效率 SELECT * FROM EMP E, LOCATION L, CATEGORY C WHERE E.CAT_NO = C.CAT_NO AND E.LOCN = L.LOCN AND E.EMP_NO BETWEEN 1000 AND 2000 仪伸迄篱咕恍棠磺堆玫蹲堕噪雾宛摘沽欧毫笺宫渝哈瞅汤去乒坠候予敦逼11-Oracle SQL性能优化课件11-Oracle SQL性能优化课件 Where子句中的连接顺序 (1) 8 Oracle采用自下而上的顺序解析WHERE子句。 根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。 砍好靴殿冯抓倘

文档评论(0)

gm8099 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档