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

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

 2007-05-11 12:21:26 来源:WEB开发网   
核心提示: 压缩一个已有的未压缩表如果你有一个已有的未压缩表,那么你可以利用ALTER... MOVE语句对其进行压缩,Oracle中压缩数据节省空间和提高速度(5),例如,可以利用以下方法对一个名为SALES_HISTORY_TEMP的未压缩表进行压缩:ALTER TABLE SALES_HISTO

压缩一个已有的未压缩表

如果你有一个已有的未压缩表,那么你可以利用ALTER... MOVE语句对其进行压缩。例如,可以利用以下方法对一个名为SALES_HISTORY_TEMP的未压缩表进行压缩:  ALTER TABLE SALES_HISTORY_TEMP
  MOVE COMPRESS;

你也可以将ALTER TABLE ...MOVE语句用于解压缩一个表,如下例所示:  ALTER TABLE SALES_HISTORY_TEMP
  MOVE NOCOMPRESS;

请注意,ALTER TABLE ...MOVE操作会获得一个对该表操作的EXCLUSIVE锁,它可以在该语句执行过程中禁止对该表进行任何DML操作。你可以利用Oracle9i数据库的在线表重定义特性来避免这一可能出现的问题。

压缩一个物化视图

你可以使用用于压缩表的类似方式来压缩物化视图。下面的命令生成一个压缩的物化视图:  CREATE MATERIALIZED VIEW MV_SALES_COMP
  COMPRESS
  AS SELECT P.PART_NAME, H.STORE_ID, H.SALE_DATE, H.QUANTITY
  FROM SALES_HISTORY H, PARTS P
  WHERE P.PART_ID = H.PART_ID;

基于多个表的联接生成的物化视图通常很适于压缩,因为它们通常拥有大量的重复数据项。你可以使用ALTER MATERIALIZED VIEW命令来改变一个物化视图的压缩属性。下面的命令显示了如何压缩一个已有的未压缩的物化视图。

  ALTER MATERIALIZED VIEW MV_SALES COMPRESS;

当你使用此命令时,请注意通常是在下一次刷新该物化视图时才会进行实际的压缩。

压缩一个已分区的表

在对已分区的表应用压缩时,可以有很多种选择。你可以在表级别上应用压缩,也可以在分区级别上应用压缩。例如,代码清单 1中的CREATE TABLE语句创建一个具有4个分区的表。 由于是在表级别指定了COMPRESS,所以对全部4个分区都进行压缩。

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

Tags:Oracle 压缩 数据

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