二、比较两张表的占用空间
MIKE@ PROD> select segment_name,count(extent_id) extent_num,sum(bytes) space_size 2 from user_extents 3 where segment_name in ('T_COMPRESS','T_NOCOMPRESS') 4 group by segment_name;
SEGMENT_NAME EXTENT_NUM SPACE_SIZE ------------------------- ---------- ---------- T_COMPRESS 53 39845888 T_NOCOMPRESS 86 125829120 |
根据比较压缩的表比未压缩的少33个extent,并且空间大小约是未压缩的四分之一。
在dba_objects中有object_id,object_name这两个字段,它们的值重复率非常低,几乎没有重复值,现在再创建两张表,只有这两个字段,一张压缩,一张不压缩,再看看它们所占用的空间。
MIKE@ PROD> create table t_compress1 compress as select object_id,object_name from sys.dba_objects
Table created.
MIKE@ PROD> create table t_nocompress1 as select object_id,object_name from sys.dba_objects;
Table created.
MIKE@ PROD> select segment_name,count(extent_id) extent_num,sum(bytes) space_size 2 from user_extents 3 where segment_name in ('T_COMPRESS1','T_NOCOMPRESS1') 4 group by segment_name;
SEGMENT_NAME EXTENT_NUM SPACE_SIZE --------------- ---------- ---------- T_COMPRESS1 17 2097152 T_NOCOMPRESS1 17 2097152 |
压缩、未压缩的表所占空间是一样的。
综上,压缩对于值重复率高的表,在节省存储空间上是非常有效的;对于值重复率低的(比如主键),是没有什么效果的。
三、在数据库中,索引也是需要存储空间的,现在来看看它的情况。
MIKE@ PROD> create index idx_t_compress_id on t_compress(object_id) compress; Index created.
MIKE@ PROD> create index idx_t_compress_type on t_compress(object_type) compress; Index created.
MIKE@ PROD> create index idx_t_nocompress_id on t_nocompress(object_id); Index created.
MIKE@ PROD> create index idx_t_nocompress_type on t_nocompress(object_type); Index created.
MIKE@ PROD> select segment_name,count(extent_id) extent_num,sum(bytes) space_size 2 from user_extents 3 where segment_name in ('IDX_T_COMPRESS_ID','IDX_T_NOCOMPRESS_ID','IDX_T_COMPRESS_TYPE','IDX_T_NOCOMPRESS_TYPE') 4 group by segment_name;
SEGMENT_NAME EXTENT_NUM SPACE_SIZE ------------------------- ---------- ---------- IDX_T_COMPRESS_TYPE 28 13631488 #object_type重复率非常高 IDX_T_NOCOMPRESS_TYPE 37 23068672 IDX_T_NOCOMPRESS_ID 33 18874368 #通过前面的代码可以看出,ID是没有重复值的 IDX_T_COMPRESS_ID 40 26214400 |
从上面的结果中,可以说值重复率高的字段上创建的索引,经过压缩的所占用的空间明显低于未压缩的;但是对于值重复率低的(比如主键),经过压缩的所占空间反而高于未压缩的。
所以,压缩技术适合值重复率高的应用场景;对值重复率低的,反而不能体现出它的优势。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26812308/viewspace-744687/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26812308/viewspace-744687/