ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 索引压缩(三)

索引压缩(三)

原创 Linux操作系统 作者:279531451 时间:2009-10-27 21:14:08 0 删除 编辑
 compress1 只压缩索引列的第一列
   compress2 压缩两列,看看压缩两列和一列在使用空间上有多大区别
   SQL> drop index t_idx_2 ;
索引已删除。
SQL> create index t_idx_2 on t(owner,object_type,object_name) compress 2;
索引已创建。
SQL> exec show_space('T_IDX_2',USER,'INDEX');
PL/SQL 过程已成功完成。
SQL> set serveroutput on;
SQL> exec show_space('T_IDX_2',USER,'INDEX');
Free Blocks.............................0
Total Blocks............................384
Total Bytes.............................3145728
Unused Blocks...........................24
Unused Bytes............................196608
Last Used Ext FileId....................6
Last Used Ext BlockId...................1792
Last Used Block.........................104
PL/SQL 过程已成功完成。
显然空间减少大约20%多。他是根据数据重复的多少去压缩。那么压缩在空间上的确少, 但在其他性能方面肯定有影响,因为压缩索引在算法上更加复杂。那么在查询上和维护索引上,都会花费更多的处理时间。压缩索引可以减少IO的处理时间。如果系统受CPU限制,使用压缩索引降低处理速度,如果是IO方面的限制,使用压缩索引可以提高速度
4. 反向码索引 --------为了降低在Oracle 并行服务器环境中索引叶块的竞争
   1.反向码索引只是反转索引码中每列的字节。
   SQL> select 90101, dump(90101,16) from dual
  2    union all
  3    select 90102,dump(90102,16) from dual
  4    union all
  5    select 90013,dump(90103,16) from dual;
     90101 DUMP(90101,16)
---------- ---------------------
     90101 Typ=2 Len=4: c3,a,2,2
     90102 Typ=2 Len=4: c3,a,2,3
     90013 Typ=2 Len=4: c3,a,2,4
只有最后一个字节是不同的。在索引结构中,这些数字是以右边互相连接结束。我们反转
  1  select 90101, dump(reverse('90101'),16) from dual
  2  union all
  3  select 90102,dump(reverse('90102'),16) from dual
  4  union all
  5* select 90013,dump(reverse('90103'),16) from dual
SQL> /
     90101 DUMP(REVERSE('90101'),16)
---------- ----------------------------
     90101 Typ=96 Len=5: 31,30,31,30,39
     90102 Typ=96 Len=5: 32,30,31,30,39
     90013 Typ=96 Len=5: 33,30,31,30,39
可见块之间的距离相离的很远,这将减少同一块(最左边的块)后面的实例数,并且降低Pinging的数量。
反向码索引不是在所有列上都可以使用,例如,where x>5 就不能使用,因为索引中的数据不能分类,因此区域索引扫描不能工作

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

上一篇: 基于函数的索引
下一篇: 位图索引研究
请登录后发表评论 登录
全部评论

注册时间:2009-09-01

  • 博文量
    100
  • 访问量
    182881