WEB开发网
开发学院数据库Oracle Oracle中压缩数据节省空间和提高速度 阅读

Oracle中压缩数据节省空间和提高速度

 2007-05-11 12:21:26 来源:WEB开发网   
核心提示: 由于可以在分区级别上指定压缩属性,所以你可以选择压缩某些分区,Oracle中压缩数据节省空间和提高速度(6),而使另一些分区保持未压缩状态,代码清单 2中的示例说明了如何在分区级别上指定压缩属性,那么你可以利用ALTER TABLE ...MOVE PARTITION命令对此分区进行压缩,

由于可以在分区级别上指定压缩属性,所以你可以选择压缩某些分区,而使另一些分区保持未压缩状态。代码清单 2中的示例说明了如何在分区级别上指定压缩属性。

在代码清单 2中,压缩了两个表分区(SALES_Q1_03和SALES_Q2_03) ,而另外两个分区未被压缩。要注意,在分区级别上指定的压缩属性会取代对该分区在表级别上特定的压缩属性。如果未为一个分区指定压缩属性,那么该分区将继承在表级别上指定的压缩属性。在代码清单 2中,由于未对分区SALES_Q3_03和SALES_Q4_03指定压缩属性,所以这两个分区继承表级别上指定的属性值(在本例情况下为默认的NOCOMPRESS)。

在通过压缩来使用已分区的表时,它可以提供一个独特的好处。对表进行分区的一个非常有用的方法是将要对其进行DML操作(插入、更新与删除)的数据放入与只读文件分开的分区内。例如,在代码清单 2的表定义中,根据SALE_DATE对销售数据进行了分区,这样可将每一季度的销售历史数据存储在一个单独的分区内。在此示例中,2003年第1、2季度的销售数据不能被修改,所以将它们置于压缩分区SALES_Q1_03 和SALES_Q2_03中。对于第3、4季度的销售数据仍可以进行修改,所以相应的分区SALES_Q3_03和SALES_Q4_03保持未压缩状态。

如果在2003年第3季度末,SALES_Q3_03分区中的数据变为只读的,那么你可以利用ALTER TABLE ...MOVE PARTITION命令对此分区进行压缩,如下面的语句所示:  ALTER TABLE SALES_PART_COMP
  MOVE PARTITION SALES_Q3_03 COMPRESS;

要找出一个表中的哪些分区被压缩了,可以查询数据字典视图USER_TAB_PARTITIONS,如下例所示:  SELECT TABLE_NAME, PARTITION_NAME,
  COMPRESSION
  
  FROM USER_TAB_PARTITIONS;
  
  TABLE_NAME   PARTITION_NAME COMPRESSION
  ---------------------------- -----------
  SALES_PART_COMP SALES_Q4_03  DISABLED
  SALES_PART_COMP SALES_Q1_03  ENABLED
  SALES_PART_COMP SALES_Q2_03  ENABLED
  SALES_PART_COMP SALES_Q3_03  ENABLED

上一页  1 2 3 4 5 6 7  下一页

Tags:Oracle 压缩 数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接