oracle统计信息--直方图的收集:

oracle还可以通 直方图来收集 统计信息,这个例子值收集一个表的直方图统计信息:
以下是实验过程:

---创建测试表:
SQL>   create table t as select * from dba_objects;
Table created.

---调用系统的  dbms_stats 包收集统计信息:
SQL> exec dbms_stats.gather_table_stats(user,'T');
PL/SQL procedure successfully completed.


---此时数据库为表上的所有字段收集了缺省的统计信息,每个列两个Bucket:
col column_name for a30
col owner for a10
col table_name for a10
col ENDPOINT_ACTUAL_VALUE for a10
SQL> select * from dba_tab_histograms where table_name='T' and owner='SYSTEM' order by 3;
OWNER      TABLE_NAME COLUMN_NAME                    ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ------------------------------ --------------- -------------- ----------
SYSTEM     T          CREATED                                      1     2457674.88
SYSTEM     T          CREATED                                      0     2456529.48
SYSTEM     T          DATA_OBJECT_ID                               1          89403
SYSTEM     T          DATA_OBJECT_ID                               0              0
SYSTEM     T          GENERATED                                    0     4.0500E+35
SYSTEM     T          GENERATED                                    1     4.6211E+35
SYSTEM     T          LAST_DDL_TIME                                1     2457674.88
SYSTEM     T          LAST_DDL_TIME                                0     2452549.53
SYSTEM     T          NAMESPACE                                    0              1
SYSTEM     T          NAMESPACE                                    1             64
SYSTEM     T          OBJECT_ID                                    1          89403

OWNER      TABLE_NAME COLUMN_NAME                    ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ------------------------------ --------------- -------------- ----------
SYSTEM     T          OBJECT_ID                                    0              2
SYSTEM     T          OBJECT_NAME                                  0     2.4504E+35
SYSTEM     T          OBJECT_NAME                                  1     6.2963E+35
SYSTEM     T          OBJECT_TYPE                                  0     3.4943E+35
SYSTEM     T          OBJECT_TYPE                                  1     4.5849E+35
SYSTEM     T          OWNER                                        0     3.3913E+35
SYSTEM     T          OWNER                                        1     4.5831E+35
SYSTEM     T          SECONDARY                                    1     4.6211E+35
SYSTEM     T          SECONDARY                                    0     4.0500E+35
SYSTEM     T          STATUS                                       1     4.4786E+35
SYSTEM     T          STATUS                                       0     4.4786E+35

OWNER      TABLE_NAME COLUMN_NAME                    ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ------------------------------ --------------- -------------- ----------
SYSTEM     T          SUBOBJECT_NAME                               1     4.5340E+35
SYSTEM     T          SUBOBJECT_NAME                               0     1.8867E+35
SYSTEM     T          TEMPORARY                                    1     4.6211E+35
SYSTEM     T          TEMPORARY                                    0     4.0500E+35
SYSTEM     T          TIMESTAMP                                    0     2.5558E+35
SYSTEM     T          TIMESTAMP                                    1     2.6059E+35
28 rows selected.
#共28条记录。

--- 同时,列的低值、高值等信息会被收集记录在dba_tab_col_statistics中:
SQL> set linesize 150;
SQL> select table_name,column_name,num_distinct,low_value,high_value,DENSITY
from dba_tab_col_statistics where owner='SYSTEM' and table_name='T';

TABLE_NAME COLUMN_NAM NUM_DISTINCT LOW_VALUE                      HIGH_VALUE                        DENSITY
---------- ---------- ------------ ------------------------------ ------------------------------ ----------
T          OWNER                32 415045585F303330323030         584442                             .03125
T          OBJECT_NAM        52336 2F31303030333233645F44656C6567 794362437253756253616D706C696E .000019107
           E                       617465496E766F636174696F6E4861 67547970653232395F54


T          SUBOBJECT_          148 2456534E5F31                   575248245F5741495453545F323338 .006756757
           NAME                                                   3739363238335F30


T          OBJECT_ID         87106 C103                           C3095F04                        .00001148
T          DATA_OBJEC         9218 80                             C3095F04                       .000108483
           T_ID

TABLE_NAME COLUMN_NAM NUM_DISTINCT LOW_VALUE                      HIGH_VALUE                        DENSITY
---------- ---------- ------------ ------------------------------ ------------------------------ ----------
T          OBJECT_TYP           45 434C5553544552                 584D4C20534348454D41           .022222222
           E


T          CREATED             949 787108180C2624                 78740A0C160334                 .001053741
T          LAST_DDL_T         1057 78660A010D2A32                 78740A0C160334                 .000946074
           IME


T          TIMESTAMP          1094 313939302D30382D32363A31313A32 323031362D31302D31323A32313A30 .000914077
                                   353A3030                       323A3531


T          STATUS                1 56414C4944                     56414C4944                              1


TABLE_NAME COLUMN_NAM NUM_DISTINCT LOW_VALUE                      HIGH_VALUE                        DENSITY
---------- ---------- ------------ ------------------------------ ------------------------------ ----------
T          TEMPORARY             2 4E                             59                                     .5
T          GENERATED             2 4E                             59                                     .5
T          SECONDARY             2 4E                             59                                     .5
T          NAMESPACE            21 C102                           C141                           .047619048
T          EDITION_NA            0                                                                        0
           ME

15 rows selected.


---收集所有字段的直方图统计信息:
SQL> exec dbms_stats.gather_table_stats(user,'T',method_opt => 'for all columns size 1');

PL/SQL procedure successfully completed.


SQL> exec dbms_stats.gather_table_stats(user,'T',method_opt=>'for columns owner size 1');

PL/SQL procedure successfully completed.

---删除以上的两个参数之后:
SQL> select * from dba_tab_histograms where table_name='T' and owner='SYSTEM' order by 3;

OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ---------- --------------- -------------- ----------
SYSTEM     T          CREATED                  1     2457674.88
SYSTEM     T          CREATED                  0     2456529.48
SYSTEM     T          DATA_OBJEC               1          89403
                      T_ID

SYSTEM     T          DATA_OBJEC               0              0
                      T_ID

SYSTEM     T          GENERATED                0     4.0500E+35
SYSTEM     T          GENERATED                1     4.6211E+35
SYSTEM     T          LAST_DDL_T               1     2457674.88

OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ---------- --------------- -------------- ----------
                      IME

SYSTEM     T          LAST_DDL_T               0     2452549.53
                      IME

SYSTEM     T          NAMESPACE                0              1
SYSTEM     T          NAMESPACE                1             64
SYSTEM     T          OBJECT_ID                1          89403
SYSTEM     T          OBJECT_ID                0              2
SYSTEM     T          OBJECT_NAM               0     2.4504E+35
                      E

OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ---------- --------------- -------------- ----------

SYSTEM     T          OBJECT_NAM               1     6.2963E+35
                      E


SYSTEM     T          OBJECT_TYP               0     3.4943E+35
                      E


SYSTEM     T          OBJECT_TYP               1     4.5849E+35
                      E


SYSTEM     T          OWNER                    0     3.3913E+35


OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ---------- --------------- -------------- ----------
SYSTEM     T          OWNER                    1     4.5831E+35
SYSTEM     T          SECONDARY                1     4.6211E+35
SYSTEM     T          SECONDARY                0     4.0500E+35
SYSTEM     T          STATUS                   1     4.4786E+35
SYSTEM     T          STATUS                   0     4.4786E+35
SYSTEM     T          SUBOBJECT_               1     4.5340E+35
                      NAME
#共28条记录。
 
 
- -- 通过dbms_stats.delete_column_stats包删除owner字段:
 SQL> exec dbms_stats.delete_column_stats(user,'T','OWNER');
PL/SQL procedure successfully completed.


SQL> select * from dba_tab_histograms where table_name='T' and owner='SYSTEM' order by 3;

OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ---------- --------------- -------------- ----------
SYSTEM     T          CREATED                  1     2457674.88
SYSTEM     T          CREATED                  0     2456529.48
SYSTEM     T          DATA_OBJEC               1          89403
                      T_ID


SYSTEM     T          DATA_OBJEC               0              0
                      T_ID

SYSTEM     T          GENERATED                0     4.0500E+35
SYSTEM     T          GENERATED                1     4.6211E+35
SYSTEM     T          LAST_DDL_T               1     2457674.88


OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ---------- --------------- -------------- ----------
                      IME


SYSTEM     T          LAST_DDL_T               0     2452549.53
                      IME


SYSTEM     T          NAMESPACE                1             64
SYSTEM     T          NAMESPACE                0              1
SYSTEM     T          OBJECT_ID                1          89403
SYSTEM     T          OBJECT_ID                0              2
SYSTEM     T          OBJECT_NAM               0     2.4504E+35
                      E


OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ---------- --------------- -------------- ----------


SYSTEM     T          OBJECT_NAM               1     6.2963E+35
                      E


SYSTEM     T          OBJECT_TYP               1     4.5849E+35
                      E


SYSTEM     T          OBJECT_TYP               0     3.4943E+35
                      E


SYSTEM     T          SECONDARY                0     4.0500E+35


OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ---------- --------------- -------------- ----------
SYSTEM     T          SECONDARY                1     4.6211E+35
SYSTEM     T          STATUS                   0     4.4786E+35
SYSTEM     T          STATUS                   1     4.4786E+35
SYSTEM     T          SUBOBJECT_               0     1.8867E+35
                      NAME


SYSTEM     T          SUBOBJECT_               1     4.5340E+35
                      NAME


SYSTEM     T          TEMPORARY                0     4.0500E+35
SYSTEM     T          TEMPORARY                1     4.6211E+35


OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ---------- --------------- -------------- ----------
SYSTEM     T          TIMESTAMP                1     2.6059E+35
SYSTEM     T          TIMESTAMP                0     2.5558E+35

26 rows selected.




---通过执行包dbms_stats.gather_table_stats 再次收集,发现地段owner又出现了:
SQL> exec dbms_stats.gather_table_stats(user,'T');


PL/SQL procedure successfully completed.


SQL>  select * from dba_tab_histograms where table_name='T' and owner='SYSTEM' order by 3;


OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ---------- --------------- -------------- ----------
SYSTEM     T          CREATED                  1     2457674.88
SYSTEM     T          CREATED                  0     2456529.48
SYSTEM     T          DATA_OBJEC               1          89403
                      T_ID


SYSTEM     T          DATA_OBJEC               0              0
                      T_ID


SYSTEM     T          GENERATED                0     4.0500E+35
SYSTEM     T          GENERATED                1     4.6211E+35
SYSTEM     T          LAST_DDL_T               1     2457674.88


OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ---------- --------------- -------------- ----------
                      IME


SYSTEM     T          LAST_DDL_T               0     2452549.53
                      IME


SYSTEM     T          NAMESPACE                0              1
SYSTEM     T          NAMESPACE                1             64
SYSTEM     T          OBJECT_ID                1          89403
SYSTEM     T          OBJECT_ID                0              2
SYSTEM     T          OBJECT_NAM               0     2.4504E+35
                      E


OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ---------- --------------- -------------- ----------


SYSTEM     T          OBJECT_NAM               1     6.2963E+35
                      E


SYSTEM     T          OBJECT_TYP               0     3.4943E+35
                      E


SYSTEM     T          OBJECT_TYP               1     4.5849E+35
                      E


SYSTEM     T          OWNER                    0     3.3913E+35


OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ---------- --------------- -------------- ----------
SYSTEM     T          OWNER                    1     4.5831E+35
SYSTEM     T          SECONDARY                1     4.6211E+35
SYSTEM     T          SECONDARY                0     4.0500E+35
SYSTEM     T          STATUS                   1     4.4786E+35
SYSTEM     T          STATUS                   0     4.4786E+35
SYSTEM     T          SUBOBJECT_               1     4.5340E+35
                      NAME


SYSTEM     T          SUBOBJECT_               0     1.8867E+35
                      NAME




OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE ENDPOINT_A
---------- ---------- ---------- --------------- -------------- ----------
SYSTEM     T          TEMPORARY                1     4.6211E+35
SYSTEM     T          TEMPORARY                0     4.0500E+35
SYSTEM     T          TIMESTAMP                0     2.5558E+35
SYSTEM     T          TIMESTAMP                1     2.6059E+35
28 rows selected.
#共28条记录。

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

转载于:http://blog.itpub.net/31392094/viewspace-2129903/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值