转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> 其他 >> 正文
OracleOptimizer:迁移到使用基于成本的优化器-----系列1.1         ★★★★

OracleOptimizer:迁移到使用基于成本的优化器-----系列1.1

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1918 更新时间:2009/4/22 23:22:23
bsp;         .索引列的结合范围查找.

                  .索引列的非结合范围查找.

                  .排序合并连接.

                  .索引列的最大max或min

                  .索引列的order by.

                                 .全表扫描.

        举例来说,如果生成一个在where子句条件中精确匹配两列的表的查询,一列拥有主键(对应于使用主键的单独记录.)而别一列拥有非主键(对应于单列主键),则RBO更喜欢主键(对应于使用主键的单独记录.),而不是非主键(对应于单列主键).

当在一个查询中涉及到要访问多个表,优化器需要确定那个表是驱动表.RBO生成一组连接顺序,每一个表做为第一个表,然后优化器从执行计划的结果集中选择最理想的计划.优化器评估不同条件诸如(最少的嵌套循环,最少的排序合并连接,最佳级别的表访问路径,等等),如果仍然不能比较出结果,则优化器会选择查询的FROM子句第一个表作为驱动表.因此,常规条件下的编码实践将把驱动表放在最右边.其它的表按访问顺序跟随在FROM子句中. 也就是说,表的顺序是从右到左的访问顺序。

请注意,用以搜索列的操作符也扮演着决定级别的角色,有时甚至考虑索引的时间作为级别

例如下面的表证明了在列1和列2上的索引使用情况,如果它们两个在where子句上用”=”连接

例:


         select * from am79 where col1 = 1 and col2 = 'amar';
          -- here both col1 and col2 are indexed. 
 
          -------------------------------------------------------------------------------------
              Normal index types                   |     Index used in RBO
           column1(a)     column2(b)    column1+column2(c)   |     
          -------------------------------------------------------------------------------------
           non-unique        non-unique             c
           non-unique       non-unique                             a + b
           non-unique       non-unique      non-unique             c
           unique           non-unique                             a
           unique                           non-unique             a
           unique           unique                                 b (the most recent index created)
           unique           unique          unique                 c
           -------------------------------------------------------------------------------------
           -The above is tested on Oracle 8.1.7.1.
           -In case of non-unique single column indexes, both indexes are used.
           -In case of unique indexes, they are not combined for execution plan, any one is taken.
           -Preference is given to the index available with the "=" operator column, than with
           others operators.
           -Don't create bitmap & function-based indexes, these will not work in RBO.
           -------------------------------------------------------------------------------------

 

RBO偏好Oracle早期版本的大多数设置作为执行计划路径,这种选择是统一的。查询总会产生同样的方法对于运行在不同数据库上相同的应用程序(待续).

 

 

上一页  [1] [2] 


[ORACLE]Oracle Optimizer:迁移到使用基于成本的优化器---…  
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台