oracle 10G中一些SQL优化的亮点.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
oracle 10G中一些SQL优化的亮点

10G中一些SQL优化的亮点 1、优化器默认为CBO,OPTIMIZER_MODE默认值为ALL_ROWS。不再使用古老的RBO模式,但RULE、CHOOSE并没有彻底消失,有些时候仍然可以作为我们调试的工具。 2、CPU Costing的计算方式现在默认为CPU+I/O两者之和.可通过DBMS_XPLAN.DISPLAY_CURSOR观察更为详细的执行计划。 3、增加了几个有用SQL Hints: INDEX_SS[[@block] tabs [inds]],INDEX_SS_ASC,INDEX_SS_DESC;SS为SKIP SCAN的缩写。skip scan以前讨论的很多。 NO_USE_N[[@block] tabs],NO_USE_HAHS,NO_USE_MERGE,NO_INDEX_FFS,NO_INDEX_SS,NO_STAR_TRANSFORMATION,NO_QUERY_TRANSFORMATION. 这几个HINT不用解释,一看就知道目的是什么。 USE_NL_WITH_INDEX([@block] tabs [index]):这个提示和Nested Loops有关,通过提示我们可以指定Nested Loops循环中的内部表,也就是开始循环连接其他表的表。CBO是否会执行取决于指定表是否有索引键关联。 QB_NAME(@blockname) 这个提示可以给某个查询定义一个name,并且可以在其他hints中使用这个name,并且将这个hints作用到这个name对应的查询中.其实从10G开始,Oracle对一些特定的查询自动使用queryblockname 4、10G中支持在hint中使用queryblockname select * from a1where idin (select /*+ qb_name(sub1)*/ id from a1where idin (2,10,12)); ExecutionPlan ---------------------------------------------------------- Plan hash value:173249654 ----------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes| Cost (%CPU)| Time | ----------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 2 | 34 | 3 (34)| 00:00:01 | | 1 | TABLE ACCESSBY INDEX ROWID| A1 | 1 | 14 | 1 (0)| 00:00:01 | | 2 | NESTED LOOPS | | 2 | 34 | 3 (34)| 00:00:01 | | 3 | SORTUNIQUE | | 2 | 6 | 1 (0)| 00:00:01 | | 4 | INLIST ITERATOR | | | | | | |* 5 | INDEX RANGE SCAN | IDX_A1_ID| 2 | 6 | 1 (0)| 00:00:01 | |* 6 | INDEX RANGE SCAN | IDX_A1_ID| 1 | | 0 (0)| 00:00:01 | ----------------------------------------------------------------------------------------- --------------- select * from a1where idin (select /*+ qb_name(sub1) full(@sub1 a1)*/

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档