ITPUB论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
更多
查看: 2669|回复: 15

outline 问题 [复制链接]

精华贴数
1
技术积分
165
社区积分
1418
注册时间
2008-3-12
论坛徽章:
13
2010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:斯洛文尼亚
日期:2010-01-10 09:46:302010年世界杯参赛球队:意大利
日期:2010-01-26 18:39:032010年世界杯参赛球队:丹麦
日期:2010-03-18 15:34:462010年世界杯参赛球队:朝鲜
日期:2010-03-23 04:04:282010年世界杯参赛球队:葡萄牙
日期:2010-06-09 16:28:15IT宝贝
日期:2010-09-14 09:02:20ITPUB9周年纪念徽章
日期:2010-10-08 09:31:212011新春纪念徽章
日期:2011-02-18 11:42:47
发表于 2008-8-29 17:11:26 |显示全部楼层
SQL>  create outline ol_t1 for category cc on select count(*) from t1;
Outline created.
SQL> select count(*) from t1;
  COUNT(*)
----------
    314496

Execution Plan
----------------------------------------------------------
Plan hash value: 3693069535
-------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Cost (%CPU)| Time     |
-------------------------------------------------------------------
|   0 | SELECT STATEMENT   |      |     1 |   912   (1)| 00:00:11 |
|   1 |  SORT AGGREGATE    |      |     1 |            |          |
|   2 |   TABLE ACCESS FULL| T1   |   314K|   912   (1)| 00:00:11 |
-------------------------------------------------------------------
Note
-----
   - outline "OL_T1" used for this statement

Statistics
----------------------------------------------------------
         34  recursive calls
        147  db block gets
       4151  consistent gets
          0  physical reads
        576  redo size
        517  bytes sent via SQL*Net to client
        492  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
          1  rows processed
SQL> create index ind_t1 on t1(object_id);
Index created.
SQL> alter session set use_stored_outlines=cc;
Session altered.
SQL> select count(*) from t1;
  COUNT(*)
----------
    314496

Execution Plan
----------------------------------------------------------
Plan hash value: 2450975207
------------------------------------------------------------------------
| Id  | Operation             | Name   | Rows  | Cost (%CPU)| Time     |
------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |        |     1 |   159   (3)| 00:00:02 |
|   1 |  SORT AGGREGATE       |        |     1 |            |          |
|   2 |   INDEX FAST FULL SCAN| IND_T1 |   314K|   159   (3)| 00:00:02 |
------------------------------------------------------------------------
Note
-----
   - outline "OL_T1" used for this statement

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


请问为啥2次执行用的一个Outline ,执行计划确不同呢?而且从outln.ol$hints看,ol_t1就是全表扫描,为啥第二次就走了索引呢?

SQL> L
  1* select OL_NAME,CATEGORY, HINT_TEXT from outln.ol$hints where ol_name='OL_T1'
SQL> /
OL_NAME    CATEGORY   HINT_TEXT
---------- ---------- ----------------------------------------------------------------------
OL_T1      CC         FULL(@"SEL$1" [email=]"T1"@"SEL$1[/email]")
OL_T1      CC         OUTLINE_LEAF(@"SEL$1")
OL_T1      CC         ALL_ROWS
OL_T1      CC         OPT_PARAM('optimizer_dynamic_sampling' 0)
OL_T1      CC         OPTIMIZER_FEATURES_ENABLE('10.2.0.4')
OL_T1      CC         IGNORE_OPTIM_EMBEDDED_HINTS

注册会员

中级会员

精华贴数
0
技术积分
1468
社区积分
9
注册时间
2003-7-24
论坛徽章:
14
授权会员
日期:2008-08-18 15:32:56SQL大赛参与纪念
日期:2011-04-13 12:08:172011新春纪念徽章
日期:2011-03-21 14:26:302011新春纪念徽章
日期:2011-02-18 11:42:472012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522010年世界杯参赛球队:塞尔维亚
日期:2010-01-07 09:54:43铁扇公主
日期:2009-03-29 08:40:27生肖徽章2007版:马
日期:2009-03-10 21:15:362008北京奥运纪念徽章:赛艇
日期:2008-10-24 13:25:17ITPUB元老
日期:2008-09-03 23:07:312008北京奥运纪念徽章:皮划艇激流回旋
日期:2008-09-01 16:46:59
发表于 2008-8-29 17:18:44 |显示全部楼层

OUTLINE只是希望ORA按你的计划去执行

但当ORACLE发现现有系统有更有效的路径时,会不按OUTLINE约定的去实现

使用道具 举报

精华贴数
2
技术积分
7281
社区积分
375
注册时间
2008-8-8
论坛徽章:
49
授权会员
日期:2008-08-13 18:58:45现任管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-01-04 11:54:26数据库板块每日发贴之星
日期:2009-09-12 01:01:03数据库板块每日发贴之星
日期:2008-09-11 01:02:29数据库板块每日发贴之星
日期:2008-09-10 01:02:36数据库板块每日发贴之星
日期:2008-09-08 01:02:42数据库板块每日发贴之星
日期:2008-09-06 01:02:24数据库板块每日发贴之星
日期:2008-09-05 01:02:31数据库板块每日发贴之星
日期:2008-09-02 01:02:33数据库板块每日发贴之星
日期:2008-09-01 01:02:24数据库板块每日发贴之星
日期:2008-08-31 01:02:56
发表于 2008-8-29 17:20:23 |显示全部楼层
学习了
梦想有多远,就能走多远!
全面提供OCP,OCM认证,ORACLE 第三方技术服务
http://www.dba168.com/


OCP&OCM认证  考试一群 101435
OCP&OCM认证  考试五群 58614576
OCP&OCM认证  考试六群 107062685
OCP&OCM认证  考试七群 65058302
长春 Oracle Club 群 123275956

提供11G OCP认证服务
OCP&OCM认证  考试二群 22090594(已满)
OCP&OCM认证  考试三群 10317220(已满)
OCP&OCM认证  考试四群 41511680(已满)

QQ:1666555  MSN:xuguohao@live.cn

使用道具 举报

精华贴数
2
技术积分
7281
社区积分
375
注册时间
2008-8-8
论坛徽章:
49
授权会员
日期:2008-08-13 18:58:45现任管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-01-04 11:54:26数据库板块每日发贴之星
日期:2009-09-12 01:01:03数据库板块每日发贴之星
日期:2008-09-11 01:02:29数据库板块每日发贴之星
日期:2008-09-10 01:02:36数据库板块每日发贴之星
日期:2008-09-08 01:02:42数据库板块每日发贴之星
日期:2008-09-06 01:02:24数据库板块每日发贴之星
日期:2008-09-05 01:02:31数据库板块每日发贴之星
日期:2008-09-02 01:02:33数据库板块每日发贴之星
日期:2008-09-01 01:02:24数据库板块每日发贴之星
日期:2008-08-31 01:02:56
发表于 2008-8-29 17:20:58 |显示全部楼层
原帖由 sqlanywhere 于 2008-8-29 17:18 发表
但当ORACLE发现现有系统有更有效的路径时,会不按OUTLINE约定的去实现

那OUTLINE的主要作用是啥,不就是固定执行计划吗?
梦想有多远,就能走多远!
全面提供OCP,OCM认证,ORACLE 第三方技术服务
http://www.dba168.com/


OCP&OCM认证  考试一群 101435
OCP&OCM认证  考试五群 58614576
OCP&OCM认证  考试六群 107062685
OCP&OCM认证  考试七群 65058302
长春 Oracle Club 群 123275956

提供11G OCP认证服务
OCP&OCM认证  考试二群 22090594(已满)
OCP&OCM认证  考试三群 10317220(已满)
OCP&OCM认证  考试四群 41511680(已满)

QQ:1666555  MSN:xuguohao@live.cn

使用道具 举报

精华贴数
1
技术积分
165
社区积分
1418
注册时间
2008-3-12
论坛徽章:
13
2010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:斯洛文尼亚
日期:2010-01-10 09:46:302010年世界杯参赛球队:意大利
日期:2010-01-26 18:39:032010年世界杯参赛球队:丹麦
日期:2010-03-18 15:34:462010年世界杯参赛球队:朝鲜
日期:2010-03-23 04:04:282010年世界杯参赛球队:葡萄牙
日期:2010-06-09 16:28:15IT宝贝
日期:2010-09-14 09:02:20ITPUB9周年纪念徽章
日期:2010-10-08 09:31:212011新春纪念徽章
日期:2011-02-18 11:42:47
发表于 2008-8-29 17:25:36 |显示全部楼层
原帖由 sqlanywhere 于 2008-8-29 17:18 发表
但当ORACLE发现现有系统有更有效的路径时,会不按OUTLINE约定的去实现


are you sure?
问题是如果oracle认为的执行计划不是很有效,怎么办?

使用道具 举报

版主

版主

精华贴数
57
技术积分
51675
社区积分
3819
注册时间
2002-5-26
论坛徽章:
70
授权会员
日期:2005-10-30 17:05:33ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41ITPUB官方微博粉丝徽章
日期:2011-06-28 19:45:36复活蛋
日期:2011-05-31 16:00:07现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:41:01ITPUB技术丛书作者
日期:2010-09-26 15:24:56月度精华徽章
日期:2010-06-01 02:15:562010新春纪念徽章
日期:2010-03-01 11:19:502007年度ITPUB最佳技术原创精华
日期:2008-04-03 16:46:48管理团队2007贡献徽章
日期:2007-09-26 00:03:14参与2007年甲骨文全球大会(中国上海)纪念
日期:2007-08-06 15:19:01
发表于 2008-8-29 17:29:29 |显示全部楼层
原帖由 sqlanywhere 于 2008-8-29 17:18 发表
但当ORACLE发现现有系统有更有效的路径时,会不按OUTLINE约定的去实现


这个不太对。。。

但是楼主的问题确实挺有趣的,测试一下。
有事情请发Gmail邮箱,站内IM可能不能及时回复。    

***Chanel [K]***ACOUG***ACOUG Forum***

从明天起, 做一个幸福的人  
喂马, 劈柴, 周游世界  
从明天起, 关心粮食和蔬菜  
我有一所房子 面朝大海, 春暖花开


使用道具 举报

注册会员

中级会员

精华贴数
0
技术积分
1468
社区积分
9
注册时间
2003-7-24
论坛徽章:
14
授权会员
日期:2008-08-18 15:32:56SQL大赛参与纪念
日期:2011-04-13 12:08:172011新春纪念徽章
日期:2011-03-21 14:26:302011新春纪念徽章
日期:2011-02-18 11:42:472012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522010年世界杯参赛球队:塞尔维亚
日期:2010-01-07 09:54:43铁扇公主
日期:2009-03-29 08:40:27生肖徽章2007版:马
日期:2009-03-10 21:15:362008北京奥运纪念徽章:赛艇
日期:2008-10-24 13:25:17ITPUB元老
日期:2008-09-03 23:07:312008北京奥运纪念徽章:皮划艇激流回旋
日期:2008-09-01 16:46:59
发表于 2008-8-29 17:32:03 |显示全部楼层

OUTLINE应用情况之一

开发环境与生产环境基本一致,包括硬件,软件,表,用户,等等
当在开发环境调整为最优的时候,做一个OUTLINE,直接应用到生产里,就不用再考虑tuning了

使用道具 举报

精华贴数
1
技术积分
165
社区积分
1418
注册时间
2008-3-12
论坛徽章:
13
2010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:斯洛文尼亚
日期:2010-01-10 09:46:302010年世界杯参赛球队:意大利
日期:2010-01-26 18:39:032010年世界杯参赛球队:丹麦
日期:2010-03-18 15:34:462010年世界杯参赛球队:朝鲜
日期:2010-03-23 04:04:282010年世界杯参赛球队:葡萄牙
日期:2010-06-09 16:28:15IT宝贝
日期:2010-09-14 09:02:20ITPUB9周年纪念徽章
日期:2010-10-08 09:31:212011新春纪念徽章
日期:2011-02-18 11:42:47
发表于 2008-8-29 17:33:23 |显示全部楼层
谢版主!

SQL> show parameter statistics_level

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
statistics_level                     string      TYPICAL

SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0      Production
TNS for Solaris: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production

使用道具 举报

注册会员

中级会员

精华贴数
0
技术积分
1468
社区积分
9
注册时间
2003-7-24
论坛徽章:
14
授权会员
日期:2008-08-18 15:32:56SQL大赛参与纪念
日期:2011-04-13 12:08:172011新春纪念徽章
日期:2011-03-21 14:26:302011新春纪念徽章
日期:2011-02-18 11:42:472012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522010年世界杯参赛球队:塞尔维亚
日期:2010-01-07 09:54:43铁扇公主
日期:2009-03-29 08:40:27生肖徽章2007版:马
日期:2009-03-10 21:15:362008北京奥运纪念徽章:赛艇
日期:2008-10-24 13:25:17ITPUB元老
日期:2008-09-03 23:07:312008北京奥运纪念徽章:皮划艇激流回旋
日期:2008-09-01 16:46:59
发表于 2008-8-29 17:55:20 |显示全部楼层

up

关注......

使用道具 举报

版主

版主

精华贴数
57
技术积分
51675
社区积分
3819
注册时间
2002-5-26
论坛徽章:
70
授权会员
日期:2005-10-30 17:05:33ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41ITPUB官方微博粉丝徽章
日期:2011-06-28 19:45:36复活蛋
日期:2011-05-31 16:00:07现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:41:01ITPUB技术丛书作者
日期:2010-09-26 15:24:56月度精华徽章
日期:2010-06-01 02:15:562010新春纪念徽章
日期:2010-03-01 11:19:502007年度ITPUB最佳技术原创精华
日期:2008-04-03 16:46:48管理团队2007贡献徽章
日期:2007-09-26 00:03:14参与2007年甲骨文全球大会(中国上海)纪念
日期:2007-08-06 15:19:01
发表于 2008-8-29 19:13:51 |显示全部楼层
这似乎是10.2.0.4的问题,我在10.2.0.1里面测试,一切正常。
有事情请发Gmail邮箱,站内IM可能不能及时回复。    

***Chanel [K]***ACOUG***ACOUG Forum***

从明天起, 做一个幸福的人  
喂马, 劈柴, 周游世界  
从明天起, 关心粮食和蔬菜  
我有一所房子 面朝大海, 春暖花开


使用道具 举报

相关内容推荐
您需要登录后才可以回帖 登录 | 注册

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 邮箱 虎吧 老博客 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
回顶部