Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1634389
  • 博文数量: 201
  • 博客积分: 2812
  • 博客等级: 少校
  • 技术积分: 3029
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-18 18:28
个人简介

从事数据库工作多年,目前看好分布式NeSQL/HTAP数据库在企业客户市场的发展。未来的主要方向是——致力于 NewSQL/HTAP 数据库的推广普及。

文章存档

2016年(1)

2015年(8)

2014年(23)

2013年(50)

2012年(32)

2011年(87)

分类: Sybase

2013-05-02 16:53:09

    SAP Sybase IQ 16.0采用 "NBit FP" 和 "Flat FP" 索引作为缺省的列存储机制。IQ 16之前版本具有的FP 1、2、3 (即1字节、2字节、3字节FP) 索引被NBit FP索引替代。"NBit FP"索引具有更高效的压缩能力和更高的性能。除了LOB和Bit数据类型外,所有其他数据类型的字段都可以使用"NBit FP"索引。
    ”NBit FP” 索引具有显示和隐式两种控制方式:
 
   1. 显示方式--通过create table时指定字段的IQ UNIQUE n属性
      (1) "IQ UNIQUE n" 字段约束显示地确定一个列在装载时采用"Flat FP"还是"NBit FTP"索引。
      (2) "IQ UNIQUE n" 设置为0时,那么被指定的字段将使用"Flat FP"。
      (3) "IQ UNIQUE n" 设置为大于0并且小于数据库选项 FP_NBIT_AUTOSIZE_LIMIT设置的值,那么被指定的字段初始将使用n位
           "NBit FP"索引。
      (4) 使用IQ UNIQUE n 这种方式一般在两种情况下使用:希望目标列使用"Flat FP"索引;或者当目标字段的基数值可能超过
           FP_NBIT_AUTOSIZE_LIMIT选项设置的值时,仍然能够使用"NBit FP"索引。

   2.  隐式方式--通过数据库选项进行控制
      (1) 在创建表时字段没有指定"IQ UNIQUE n"属性,而是通过数据库选项FP_NBIT_AUTOSIZE_LIMIT设置的值自动进行控制。
      (2) 如果字段的基数值< FP_NBIT_AUTOSIZE_LIMIT设置的值(需要FP_NBIT_IQ15_COMPATIBILITY数据库选项设置为'OFF'),并
           且字段使用的"字典尺寸(字典是由值和相应值的记录数组成values and counts) "            用"NBit FP"。
      (3) 如果字段的基数值(初始装载或后续装载时) > FP_NBIT_AUTOSIZE_LIMIT设置的值,但是            设置的值,那么字段将转为"Flat FP"索引。
      (4) DML操作导致字段的基数值超过了FP_NBIT_ROLLOVER_MAX_MB 并且 FP_ENFORCE_LIMITS='ON',那么DML操作将被回滚
           并报错。如果 FP_NBIT_ENFORCE_LIMITS='OFF',那么相应字段被转换到下一个NBit 压缩级别。


      Sybase IQ 15支持3个级别的FP索引: FP(1), FP(2) and FP(3)。 SAP Sybase IQ 16.0 支持31个NBit 级别。下面是NBit 值(级别)与IQ UNIQUE列约束属性的对应关系:
  
  NBit Value               IQ UNIQUE
==========      ============   
1                             2
2                             4
3                             8
4                             16
5                             32
6                             64
7                             128
8                             256(FP 1)              
9                             512
10                           1024
11                           2048
12                           4096
13                           8192
14                           16384
15                           32768
16                           65536(FP 2)
17                           131972
18                           262144
19                           524288
20                           1048576
21                           2097152
22                           4194304
23                           8388608
24                           16777216(FP 3)
25                           33554432
26                           67108864
27                           134217728
28                           268435456
29                           536870912
30                           1073741824
31                           2147483647
 
       
      为了说明SAP Sybase IQ 16.0压缩能力的提升情况,使用TPCH 1GB的lineitem表进行了压缩测试,测试结果如下:

     (1) lineitem表6百万条记录,分为4个数据文件(共742054KB),装载到IQ 16后占用存储空间(sp_iqtablesize的输出)情况如下:

            KBytes               Pages                CompressedPages
            232984               3845                 3216        


     (2) IQ 15.4 占用存储空间情况:
           KBytes               Pages                CompressedPages
           350560               6540                 6085

 

      通过上面的测试可以看到,IQ 16比IQ 15的压缩能力提升了大约50%!
阅读(3336) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~