亚冠

解析ORACLE数据库 数据压缩

2019-12-04 20:15:47来源:励志吧0次阅读

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

缺点:在更新操作时,性能有很大下降,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。

武汉楚天男科医院张书俊
解放军第184医院怎么样
乌鲁木齐治疗男科医院哪家好
遵义哪家医院治疗癫痫病好
昆明做妇科基本检查费用
分享到: