12
返回列表 发新帖
楼主: qiudan5221

关于驱动表的选择

[复制链接]
论坛徽章:
19
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152010新春纪念徽章
日期:2010-03-01 11:20:052010年世界杯参赛球队:意大利
日期:2010-02-27 09:23:50生肖徽章2007版:蛇
日期:2009-09-17 08:36:24ITPUB元老
日期:2009-05-10 15:09:52奥运会纪念徽章:游泳
日期:2008-06-13 08:59:56生肖徽章2007版:猴
日期:2008-01-02 17:35:53金色在线徽章
日期:2007-11-11 04:03:22鲜花蛋
日期:2013-02-22 09:19:34
11#
 楼主| 发表于 2008-4-17 11:36 | 只看该作者
SQL> show parameter optimizer_mode

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
optimizer_mode                       string      all_rows

当改为CHOOSE时取得驱动表不一样,是否当all_rows时,即使optimizer_dynamic_sampling=0 也会进行采样?

SQL> alter system set optimizer_mode=CHOOSE
  2  ;

System altered.

SQL> select count(*) from t2,t1 where t1.table_name=t2.table_name;

  COUNT(*)
----------
       787


Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE
   1    0   SORT (AGGREGATE)
   2    1     MERGE JOIN
   3    2       SORT (JOIN)
   4    3         TABLE ACCESS (FULL) OF 'T1' (TABLE)
   5    2       SORT (JOIN)
   6    5         TABLE ACCESS (FULL) OF 'T2' (TABLE)




Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
         50  consistent gets
          0  physical reads
          0  redo size
        427  bytes sent via SQL*Net to client
        511  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
          1  rows processed

SQL> select count(*) from t1,t2 where t1.table_name=t2.table_name;

  COUNT(*)
----------
       787


Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE
   1    0   SORT (AGGREGATE)
   2    1     MERGE JOIN
   3    2       SORT (JOIN)
   4    3         TABLE ACCESS (FULL) OF 'T2' (TABLE)
   5    2       SORT (JOIN)
   6    5         TABLE ACCESS (FULL) OF 'T1' (TABLE)




Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
         50  consistent gets
          0  physical reads
          0  redo size
        427  bytes sent via SQL*Net to client
        511  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
          1  rows processed

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2008-08-04 21:31:40数据库板块每日发贴之星
日期:2009-04-08 01:01:03月度精华徽章
日期:2011-07-01 02:15:48
12#
发表于 2008-4-17 11:43 | 只看该作者
据说CBO会自动选择驱动表,RBO才会根据表连接的顺序选择驱动表;没有试过。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表