楼主: adamyang

这是CBO无法解决的问题么?

[复制链接]
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
31#
 楼主| 发表于 2004-12-17 11:28 | 只看该作者
最初由 li2 发布
[B]analyze 不支持并行,但可以分析柱状图信息.对于这些分布不均匀的列,柱状图会是一个好的选择. [/B]


DBMS_STATS不能统计柱状图信息???

使用道具 举报

回复
论坛徽章:
168
马上加薪
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:10:582012新春纪念徽章
日期:2012-01-04 11:49:54蜘蛛蛋
日期:2011-12-05 16:08:56ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41设计板块每日发贴之星
日期:2011-07-22 01:01:02ITPUB官方微博粉丝徽章
日期:2011-06-30 12:30:16管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:33
32#
发表于 2004-12-17 12:23 | 只看该作者
try:

exec DBMS_STATS.GATHER_TABLE_STATS ('TESTUSER','TEST1',method_opt=> 'FOR ALL INDEXED COLUMNS SIZE 1',cascade=> TRUE);
-->
exec DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => NULL, TABNAME => 'TEST1', CASCADE => TRUE);
+
exec DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => NULL, TABNAME => 'TEST1', CASCADE => FALSE, METHOD_OPT => 'FOR ALL INDEXED COLUMNS');

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
33#
 楼主| 发表于 2004-12-17 13:34 | 只看该作者
谢谢husthxd版主,
exec DBMS_STATS.GATHER_TABLE_STATS( 'SQCTEST', 'TEST1', CASCADE => TRUE, METHOD_OPT => 'FOR ALL INDEXED COLUMNS');

exec DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => 'SQCTEST', TABNAME => 'TEST1', CASCADE => TRUE, METHOD_OPT => 'FOR ALL INDEXED COLUMNS');
都可以

加了SIZE 1就不行了。
''FOR ALL COLUMNS SIZE 1''
这个size 1 是什么意思?
看文档里面讲use with the phrase hidden
这个hidden又是什么作用?

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
34#
发表于 2004-12-17 13:44 | 只看该作者
这个需要你去仔细阅读 oracle  怎么记录 histograms 数据了

正常情况下,要搜集 histograms ,默认是把记录划分为 75  段来存储(假定大量记录并且选择性比较高),也就是说数据库存储了75个区间,这表示缺省的 size  75 。  如果 size 1 ,则表示只有一个区间,那就没有什么数据分布的概念了。

关于这个问题,其实我一开始就怀疑你没有搜集histograms 或者 正好你的查询落在histograms 判别为 不是你所期望的情况上。没想到后面还绕了这么多弯路。


建议去 http://tahiti.oracle.com 仔细阅读 histograms 部分,看看oracle是如何记录数据分布的统计信息,然后再考察 dbms_stats 包的用法和含义

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
35#
 楼主| 发表于 2004-12-17 14:23 | 只看该作者
谢谢biti_rainy大哥,原来SIZE是这个作用。

说实话,这个弯路让我也理解不少概念,感谢所有帮助了我的朋友
十分感谢:)

继续看文档......

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33ITPUB元老
日期:2006-11-12 20:16:58
36#
发表于 2004-12-18 19:46 | 只看该作者

为什么我的结果是这样的呢

SQL> set autotrace traceonly
SQL> set timing on
SQL> select count(*) from test where a='eygle' and b=1;

已用时间:  00: 00: 00.02

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=12 Card=1 Bytes=13)
   1    0   SORT (AGGREGATE)
   2    1     BITMAP CONVERSION (COUNT)
   3    2       BITMAP AND
   4    3         BITMAP CONVERSION (FROM ROWIDS)
   5    4           SORT (ORDER BY)
   6    5             INDEX (RANGE SCAN) OF 'I_BC' (NON-UNIQUE) (Cost=
          3 Card=147)

   7    3         BITMAP CONVERSION (FROM ROWIDS)
   8    7           INDEX (RANGE SCAN) OF 'I_A' (NON-UNIQUE) (Cost=90
          Card=147)





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

SQL> select count(*) from test where a='eygle.com' and b=1;

已用时间:  00: 00: 01.09

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=12 Card=1 Bytes=13)
   1    0   SORT (AGGREGATE)
   2    1     BITMAP CONVERSION (COUNT)
   3    2       BITMAP AND
   4    3         BITMAP CONVERSION (FROM ROWIDS)
   5    4           SORT (ORDER BY)
   6    5             INDEX (RANGE SCAN) OF 'I_BC' (NON-UNIQUE) (Cost=
          3 Card=147)

   7    3         BITMAP CONVERSION (FROM ROWIDS)
   8    7           INDEX (RANGE SCAN) OF 'I_A' (NON-UNIQUE) (Cost=244
          1 Card=147)





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


COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- --------------- --------------
A                    29999     5.2688E+35
A                   869376     5.2688E+35
B                        0              1
B                        1             52
B                        2            426
B                        3            800
B                        4           1174
B                        5           1548
B                        6           1922
B                        7           2295
B                        8           2669

COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- --------------- --------------
B                        9           3043
B                       10           3417
B                       11           3791
B                       12           4165
B                       13           4539
B                       14           4913
B                       15           5287
B                       16           5661
B                       17           6035
B                       18           6409
B                       19           6783

COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- --------------- --------------
B                       20           7157
B                       21           7531
B                       22           7905
B                       23           8278
B                       24           8652
B                       25           9026
B                       26           9397
B                       27           9771
B                       28          10143
B                       29          10506
B                       30          10868

COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- --------------- --------------
B                       31          11230
B                       32          11592
B                       33          11955
B                       34          12317
B                       35          12679
B                       36          13041
B                       37          13404
B                       38          13766
B                       39          14128
B                       40          14490
B                       41          14853

COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- --------------- --------------
B                       42          15215
B                       43          15577
B                       44          15939
B                       45          16302
B                       46          16664
B                       47          17026
B                       48          17388
B                       49          17751
B                       50          18113
B                       51          18475
B                       52          18837

COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- --------------- --------------
B                       53          19200
B                       54          19562
B                       55          19924
B                       56          20286
B                       57          20649
B                       58          21011
B                       59          21373
B                       60          21735
B                       61          22098
B                       62          22460
B                       63          22822

COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- --------------- --------------
B                       64          23184
B                       65          23547
B                       66          23909
B                       67          24271
B                       68          24633
B                       69          24996
B                       70          25358
B                       71          25720
B                       72          26082
B                       73          26445
B                       74          26807

COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- --------------- --------------
B                       75          27168
C                        0             11
C                        1            373
C                        2            735
C                        3           1097
C                        4           1459
C                        5           1822
C                        6           2184
C                        7           2546
C                        8           2908
C                        9           3271

COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- --------------- --------------
C                       10           3633
C                       11           3995
C                       12           4357
C                       13           4720
C                       14           5082
C                       15           5444
C                       16           5806
C                       17           6169
C                       18           6531
C                       19           6893
C                       20           7255

COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- --------------- --------------
C                       21           7618
C                       22           7980
C                       23           8342
C                       24           8704
C                       25           9067
C                       26           9429
C                       27           9791
C                       28          10153
C                       29          10516
C                       30          10878
C                       31          11240

COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- --------------- --------------
C                       32          11602
C                       33          11965
C                       34          12327
C                       35          12689
C                       36          13051
C                       37          13414
C                       38          13776
C                       39          14138
C                       40          14500
C                       41          14863
C                       42          15225

COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- --------------- --------------
C                       43          15587
C                       44          15949
C                       45          16312
C                       46          16674
C                       47          17036
C                       48          17398
C                       49          17761
C                       50          18123
C                       51          18485
C                       52          18847
C                       53          19210

COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- --------------- --------------
C                       54          19572
C                       55          19934
C                       56          20296
C                       57          20659
C                       58          21021
C                       59          21383
C                       60          21745
C                       61          22108
C                       62          22470
C                       63          22832
C                       64          23194

COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- --------------- --------------
C                       65          23557
C                       66          23919
C                       67          24281
C                       68          24643
C                       69          25006
C                       70          25368
C                       71          25730
C                       72          26092
C                       73          26455
C                       74          26817
C                       75          27178

已选择154行。

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33ITPUB元老
日期:2006-11-12 20:16:58
37#
发表于 2004-12-18 20:06 | 只看该作者

请教

endpoint_number  和endpoint_value是何意?

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
38#
发表于 2004-12-18 22:39 | 只看该作者

当数据量大并且选择性高的时候

endpoint_number   可以理解为 记录排序后等分做  75  份的位置

如果数据是数字,则 endpoint_value  就是该等分后位置点的数字,如果是字符串,则是根据字符串的前14位字符做 10的14次方 * 首位字符的ascii 值  +  10 的13次方 * 次位字符的ASCII码值 +  ……  这样计算出来的一个数字,这也表示字符串的大小排序,但仅仅取前14个字符串做排序。

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33ITPUB元老
日期:2006-11-12 20:16:58
39#
发表于 2004-12-18 22:54 | 只看该作者

Re: 当数据量大并且选择性高的时候

最初由 biti_rainy 发布
[B]endpoint_number   可以理解为 记录排序后等分做  75  份的位置

还是不明白,如何理解?是不是应该是等分为76份?

[/B]


还有能解释一下上面的执行计划吗?为什么会有bitmap conversion?什么意思?
我只是照搬eygle的实验自己作了一次,记录条数大约是84万条,为什么结果截然不同呢?特别是第二条SQL效率很差

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
40#
发表于 2004-12-18 23:43 | 只看该作者
执行计划,bitmap conversion  你查查 http://tahiti.oracle.com 就很明白了,不过是oracle将两个索引根据rowid合为一个bitmap的形式而已

第二个,你的statistics 没有显示出来,应该是使用 sys 用户登陆过后导致的,造成这个的原因可能在   7 INDEX (RANGE SCAN) OF 'I_A' (NON-UNIQUE) (Cost=244
1 Card=147)
cost 发生了变化,也许跟 a 的值发生了变化导致选择性的变化而造成走索引出现问题。

使用道具 举报

回复

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

本版积分规则 发表回复

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