ITPub博客

首页 > 数据库 > Oracle > Oracle11g,没有统计信息时,表的Card从哪来?

Oracle11g,没有统计信息时,表的Card从哪来?

原创 Oracle 作者:sundog315 时间:2011-10-25 16:25:52 0 删除 编辑

来源于这个问题:http://www.itpub.net/thread-1503855-1-1.html

表没有统计信息时,Cardinality从哪里来?

做个试验:

SQL> alter system flush shared_pool;

系统已更改。

SQL> create table t as select * from dba_objects where rownum<10001;

表已创建。

SQL> insert into t select * from dba_objects where rownum<10001;

已创建 10000 行。

SQL> /

已创建 10000 行。

SQL> commit;

提交完成。

SQL> select count(*) from t;

COUNT(*)
----------
30000

SQL> select t.num_rows,t.blocks from user_tables t where t.table_name='T'
2 ;

NUM_ROWS BLOCKS
---------- ----------

SQL> alter session set events '10053 trace name context forever';

会话已更改。

SQL> select * from t;

SQL> alter session set events '10053 trace name context off';

会话已更改。

10053事件里,如何计算Cardinality就比较清楚了

*** 2011-10-25 16:19:37.525
** Executed dynamic sampling query:
level : 2
sample pct. : 16.237113 actual sample size : 6008
filtered sample card. : 6008
orig. card. : 10537
block cnt. table stat. : 388
block cnt. for sampling: 388
max. sample block cnt. : 64
sample block cnt. : 63
min. sel. est. : -1.00000000
** Using dynamic sampling card. : 37002
** Dynamic sampling updated table card.
Table: T Alias: T
Card: Original: 37001.650794 Rounded: 37002 Computed: 37001.65 Non Adjusted: 37001.65

6008/0.16237113=37001.65

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/19423/viewspace-1055938/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 遭遇Bug 5918642
请登录后发表评论 登录
全部评论

注册时间:2010-01-05

  • 博文量
    126
  • 访问量
    540262