加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 大数据 > 正文

研究ORACLE数据库 数据压缩

发布时间:2021-06-27 11:50:02 所属栏目:大数据 来源:互联网
导读:优点:节省空间并在一定条件下提高查询性能。 缺点:在更新操作时,性能有很大下降,MERGE/UPDATE操作应注意。 要创建一个压缩的表,可在CREATE TABLE语句中使用COMPRESS关键字。COMPRESS关键字指示Oracle数据库尽可能以压缩的格式存储该表中的行。 或者,你

  优点:节省空间并在一定条件下提高查询性能。


  缺点:在更新操作时,性能有很大下降,MERGE/UPDATE操作应注意。


  要创建一个压缩的表,可在CREATE TABLE语句中使用COMPRESS关键字。COMPRESS关键字指示Oracle数据库尽可能以压缩的格式存储该表中的行。


  或者,你可以用ALTER TABLE语句来修改已有表的压缩属性,如下所示:


  ALTER TABLE TABLE_NAME COMPRESS;


  为了确定是否已经利用COMPRESS对一个表进行了定义,可查询DBA_TABLES数据字典视图并查看COMPRESSION列,DISABLED表示未压缩。


  也可以在表空间级别上定义COMPRESS属性,既可以在生成时利用CREATE TABLESPACE来定义,也可以稍后时间利用ALTER TABLESPACE来定义。与其他存储参数类似,COMPRESS属性也具有一些继承特性。当在一个表空间中创建一个表时,它从该表空间继承COMPRESS属性。为了确定是否已经利用COMPRESS对一个表空间进行了定义,可查询DBA_TABLESPACES数据字典视图并查看DEF_TAB_COMPRESSION列。


  为了确保数据被实际压缩,你需要利用一种正确的方法将数据加载或插入到表中。只有在利用以下4种方法之一批量加载或批量插入过程中才会进行数据压缩:


  直接路径SQL*Loader


  带有APPEND提示的串行INSERT


  并行INSERT


  CREATE TABLE … AS SELECT


  如果你有一个已有的未压缩/压缩表,那么你可以利用ALTER… MOVE COMPRESS/NOCOMPRESS语句对其进行压缩/ 解压缩。


  可以使用用于压缩表的类似方式来压缩物化视图。


  CREATE MATERIALIZED VIEW VIEW_NAME


  COMPRESS


  AS SELECT-STATEMENT ;


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


  ALTER MATERIALIZED VIEW VIEW_NAME COMPRESS;


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


  压缩/解压缩分区(子分区)可以利用ALTER TABLE …MOVE PARTITION(SUBPARTITION) PARTITION_NAME(SUBPARTITION_NAME) COMPRESS/NOCOMPRESS命令对此分区进行压缩/解压缩,


  查询分区或子分区压缩状态,可以查询数据字典视图DBA_TAB_PARTITIONS / DBA_TAB_SUBPARTITIONS。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读