索引组织表及nocompress和compress n

  • 创建索引组织表:

create table iot
(owner,object_type,object_name,primary key(owner,object_type,object_name) )
organization index
as select owner,object_type,object_name from all_objects

  • 查看索引组织表的详细参数:
select dbms_metadata.get_ddl('TABLE','IOT') from dual;

DBMS_METADATA.GET_DDL('TABLE','IOT')
--------------------------------------------------------------------------------

  CREATE TABLE "SCOTT"."IOT"
   (    "OWNER" VARCHAR2(30) NOT NULL ENABLE,
        "OBJECT_TYPE" VARCHAR2(19),
        "OBJECT_NAME" VARCHAR2(30) NOT NULL ENABLE,
         PRIMARY KEY ("OWNER", "OBJECT_TYPE", "OBJECT_NAME") ENABLE
   ) ORGANIZATION INDEX NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS"
  PCTTHRESHOLD 50

可以看到索引组织表比普通表多了两个参数 NOCOMPRESS  和  PCTTHRESHOLD。
NOCOMPRESS对一般索引都可用,它告诉Oracle把每个主键值都分别存储在各个索引条目中,例如,A、B、C是主键,则A、B、C每一次都会出现在索引条目中。因为索引组织表中索引即数据,数据即索引,也就是每个主键值都分别存储在每一行中(这在堆组织表中理所当然)。但索引组织表还提供了COMPRESS N,N是一个整数,表示要压缩的主键的列数。如果N=2,则在索引条目中A、B只会出现一次,这样避免重复值,并在块级提取公因子。


  • 测量该索引组织表所用的空间:使用analyze index validate structure命令。这个命令会填写一个名为index_stats的动态性能视图。
通过user_indexes视图获得iot表的索引(索引即数据,数据即索引)
select index_name from user_indexes where table_name='IOT';

INDEX_NAME
------------------------------
SYS_IOT_TOP_52632

analyze index SYS_IOT_TOP_52632 validate structure;
查询index_stats视图
select lf_blks,br_blks,used_space,opt_cmpr_count,opt_cmpr_pctsave from index_stats;

   LF_BLKS    BR_BLKS USED_SPACE OPT_CMPR_COUNT OPT_CMPR_PCTSAVE
---------- ---------- ---------- -------------- ----------------
       253          1    1812016              2               33
结果显示,索引使用了253个叶子块和1个分支块,大约1.8MB的空间。后两列是说:如果把这个索引置为COMPRESS 2,就会得到最佳压缩,节约33%的空间。

  • 修改COMPRESS
alter table iot move compress 1;

analyze index SYS_IOT_TOP_52632 validate structure;
select lf_blks,br_blks,used_space,opt_cmpr_count,opt_cmpr_pctsave from index_stats;

   LF_BLKS    BR_BLKS USED_SPACE OPT_CMPR_COUNT OPT_CMPR_PCTSAVE
---------- ---------- ---------- -------------- ----------------
       221          1    1582838              2               23


alter table iot  move compress 2;

analyze index SYS_IOT_TOP_52632 validate structure;
select lf_blks,br_blks,used_space,opt_cmpr_count,opt_cmpr_pctsave from index_stats;

   LF_BLKS    BR_BLKS USED_SPACE OPT_CMPR_COUNT OPT_CMPR_PCTSAVE
---------- ---------- ---------- -------------- ----------------
       169          1    1212175              2                0

可以看到不论叶子块还是空间大小都显著减少了。

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

转载于:http://blog.itpub.net/25791987/viewspace-718205/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值