oracle中的压缩,Oracle:表空间的数据压缩(Compress)

在对大型数据处理时,可能会需要压缩数据。

压缩数据可以减少对磁盘空间、内存的占用,还可以减少I/O的操作。同时,由于查询的数据块更少,所以查询压缩数据的操作也会更为快速。

但是处理压缩数据需要消耗更多的CPU资源:读取数据需要解压操作,写入数据需要压缩操作。

在创建表空间的时候可以启用数据压缩。

在表空间级别启用数据压缩的意义在于:对于启用了数据压缩的表空间,该表空间中的所有数据表都会具有(或:继承)压缩的特性。

通过“row compress advanced”的“create database …”SQL语句的选项启用数据压缩的特性。

具体如下:

Oracle PL/SQL

SQL> col file_name for a70

SQL> select file_name from dba_data_files;

FILE_NAME

----------------------------------------------------------------------

/ora_data/allah/system01.dbf

/ora_data/allah/sysaux01.dbf

/ora_data/allah/undotbs01.dbf

/ora_data/allah/users01.dbf

/ora_data/ALLAH/datafile/o1_mf_allah_b5jmqm12_.dbf

SQL>

SQL> select tablespace_name from dba_tablespaces order by 1;

TABLESPACE_NAME

------------------------------

ALLAH

SYSAUX

SYSTEM

TEMP

UNDOTBS1

USERS

6 rows selected.

SQL>

SQL> create tablespace adamhuan default row store compress advanced;

Tablespace created.

SQL> select file_name from dba_data_files;

FILE_NAME

----------------------------------------------------------------------

/ora_data/allah/system01.dbf

/ora_data/allah/sysaux01.dbf

/ora_data/allah/undotbs01.dbf

/ora_data/allah/users01.dbf

/ora_data/ALLAH/datafile/o1_mf_allah_b5jmqm12_.dbf

/ora_data/ALLAH/datafile/o1_mf_adamhuan_b5jqs1c4_.dbf

6 rows selected.

SQL> select tablespace_name from dba_tablespaces order by 1;

TABLESPACE_NAME

------------------------------

ADAMHUAN

ALLAH

SYSAUX

SYSTEM

TEMP

UNDOTBS1

USERS

7 rows selected.

SQL>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

SQL>colfile_namefora70

SQL>selectfile_namefromdba_data_files;

FILE_NAME

----------------------------------------------------------------------

/ora_data/allah/system01.dbf

/ora_data/allah/sysaux01.dbf

/ora_data/allah/undotbs01.dbf

/ora_data/allah/users01.dbf

/ora_data/ALLAH/datafile/o1_mf_allah_b5jmqm12_.dbf

SQL>

SQL>selecttablespace_namefromdba_tablespacesorderby1;

TABLESPACE_NAME

------------------------------

ALLAH

SYSAUX

SYSTEM

TEMP

UNDOTBS1

USERS

6rowsselected.

SQL>

SQL>createtablespaceadamhuandefaultrowstorecompressadvanced;

Tablespacecreated.

SQL>selectfile_namefromdba_data_files;

FILE_NAME

----------------------------------------------------------------------

/ora_data/allah/system01.dbf

/ora_data/allah/sysaux01.dbf

/ora_data/allah/undotbs01.dbf

/ora_data/allah/users01.dbf

/ora_data/ALLAH/datafile/o1_mf_allah_b5jmqm12_.dbf

/ora_data/ALLAH/datafile/o1_mf_adamhuan_b5jqs1c4_.dbf

6rowsselected.

SQL>selecttablespace_namefromdba_tablespacesorderby1;

TABLESPACE_NAME

------------------------------

ADAMHUAN

ALLAH

SYSAUX

SYSTEM

TEMP

UNDOTBS1

USERS

7rowsselected.

SQL>

不同的数据库版本中,启用数据压缩的SQL代码是不一样的:

12c:

row store compress advanced

11g:

compress for oltp

查看表空间是否具有压缩性:

Oracle PL/SQL

SQL> select tablespace_name,def_tab_compression,compress_for from dba_tablespaces;

TABLESPACE_NAME DEF_TAB_ COMPRESS_FOR

------------------------------ -------- ------------------------------

SYSTEM DISABLED

SYSAUX DISABLED

UNDOTBS1 DISABLED

TEMP DISABLED

USERS DISABLED

ALLAH DISABLED

ADAMHUAN ENABLED ADVANCED

7 rows selected.

SQL>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

SQL>selecttablespace_name,def_tab_compression,compress_forfromdba_tablespaces;

TABLESPACE_NAMEDEF_TAB_COMPRESS_FOR

------------------------------ -------- ------------------------------

SYSTEMDISABLED

SYSAUXDISABLED

UNDOTBS1DISABLED

TEMPDISABLED

USERSDISABLED

ALLAHDISABLED

ADAMHUANENABLEDADVANCED

7rowsselected.

SQL>

其中“compress_for”列的值表明的是压缩级别,它可能为两种值:ADVANCED或者BASIC。

更改表空间的压缩级别:

Oracle PL/SQL

SQL> alter tablespace adamhuan default compress basic;

Tablespace altered.

SQL> select tablespace_name,def_tab_compression,compress_for from dba_tablespaces;

TABLESPACE_NAME DEF_TAB_ COMPRESS_FOR

------------------------------ -------- ------------------------------

SYSTEM DISABLED

SYSAUX DISABLED

UNDOTBS1 DISABLED

TEMP DISABLED

USERS DISABLED

ALLAH DISABLED

ADAMHUAN ENABLED BASIC

7 rows selected.

SQL>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

SQL>altertablespaceadamhuandefaultcompressbasic;

Tablespacealtered.

SQL>selecttablespace_name,def_tab_compression,compress_forfromdba_tablespaces;

TABLESPACE_NAMEDEF_TAB_COMPRESS_FOR

------------------------------ -------- ------------------------------

SYSTEMDISABLED

SYSAUXDISABLED

UNDOTBS1DISABLED

TEMPDISABLED

USERSDISABLED

ALLAHDISABLED

ADAMHUANENABLEDBASIC

7rowsselected.

SQL>

禁用表空间的压缩特性:

Oracle PL/SQL

SQL> alter tablespace adamhuan default nocompress;

Tablespace altered.

SQL> select tablespace_name,def_tab_compression,compress_for from dba_tablespaces;

TABLESPACE_NAME DEF_TAB_ COMPRESS_FOR

------------------------------ -------- ------------------------------

SYSTEM DISABLED

SYSAUX DISABLED

UNDOTBS1 DISABLED

TEMP DISABLED

USERS DISABLED

ALLAH DISABLED

ADAMHUAN DISABLED

7 rows selected.

SQL>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

SQL>altertablespaceadamhuandefaultnocompress;

Tablespacealtered.

SQL>selecttablespace_name,def_tab_compression,compress_forfromdba_tablespaces;

TABLESPACE_NAMEDEF_TAB_COMPRESS_FOR

------------------------------ -------- ------------------------------

SYSTEMDISABLED

SYSAUXDISABLED

UNDOTBS1DISABLED

TEMPDISABLED

USERSDISABLED

ALLAHDISABLED

ADAMHUANDISABLED

7rowsselected.

SQL>

关于许可:

压缩功能仅在以下两种情况下可选:

1. Oracle Database Enterprise Edition,Oracle数据库企业版

2. Option:Advanced Compression Option,高级压缩选件

——————————————————

End。

Post Views:

379

感谢支持

1ad46b77b4ebe0c73911f418908f2eda.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值