Oracle提供了一下几种类型的表压缩方法:
1、Basic Compression:压缩等级High,CPU开销较小
2、OLTP Compression:压缩等级High,CPU开销较小
3、Warehouse Compression:压缩等级Higher,CPU开销较大(取决于压缩参数是Low还是High)
4、Archive Compression:压缩等级Highest,CPU开销很大(取决于压缩参数是Low还是High)
1、Basic Compression:压缩等级High,CPU开销较小
2、OLTP Compression:压缩等级High,CPU开销较小
3、Warehouse Compression:压缩等级Higher,CPU开销较大(取决于压缩参数是Low还是High)
4、Archive Compression:压缩等级Highest,CPU开销很大(取决于压缩参数是Low还是High)
ALTERTABLE …COMPRESS FOR OLTP
#1 将表转换为basic压缩表
alter table emp move compress basic;
#2 将表转换为OLTP压缩表
alter table emp move compress for oltp;
#3 将一个分区转换为basic压缩表
alter table table_name move partitoin partition_name compress basic;
#4 将一个分区转换为oltp压缩表
alter table table_name move partitoin partition_name compress for oltp;
#5 修改一个分区的现有压缩算法,修改之后只对新记录有效
alter table table_name modify partition,partiton_name compress for oltp;
#查看记录是压缩记录
select decode(
DBMS_COMPRESSION.GET_COMPRESSION_TYPE(
OWNNAME => 'SCOTT',
TABNAME => 'EMP',
ROW_ID => 'AAAVVhAAEAAAACzAAC'),
1,'No Compression',
2,'Basic or OLTP Compression for Query High',
3,'Hybrid Columnar Compression for Query Low',
4,'Hybrid Columnar Compression for Archive High',
5,'Hybrid Columnar Compression for Archive Low',
'Unknown Compression Type') compression_type
from dual;
SQL> desc dbms_compression
PROCEDURE GET_COMPRESSION_RATIO
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
SCRATCHTBSNAME VARCHAR2 IN
OWNNAME VARCHAR2 IN
TABNAME VARCHAR2 IN
PARTNAME VARCHAR2 IN
COMPTYPE NUMBER IN
BLKCNT_CMP BINARY_INTEGER OUT
BLKCNT_UNCMP BINARY_INTEGER OUT
ROW_CMP BINARY_INTEGER OUT
ROW_UNCMP BINARY_INTEGER OUT
CMP_RATIO NUMBER OUT
COMPTYPE_STR VARCHAR2 OUT
SUBSET_NUMROWS NUMBER IN DEFAULT
FUNCTION GET_COMPRESSION_TYPE RETURNS NUMBER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
OWNNAME VARCHAR2 IN
TABNAME VARCHAR2 IN
ROW_ID ROWID IN
PROCEDURE INCREMENTAL_COMPRESS
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
OWNNAME VARCHAR2(30) IN
TABNAME VARCHAR2(128) IN
PARTNAME VARCHAR2(30) IN
COLNAME VARCHAR2 IN
DUMP_ON NUMBER IN DEFAULT
AUTOCOMPRESS_ON NUMBER IN DEFAULT
WHERE_CLAUSE VARCHAR2 IN DEFAULT
|