`
izuoyan
  • 浏览: 8880992 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

exp之compress到底在压缩什么

 
阅读更多
exp之compress到底在压缩什么
之前有同事问我compress导出的时候可以压缩多少比例,可以压缩成什么格式的。唉,想当初我也是这么认为的,其实这个参数的作用是在导入过程中创建表的时候,初始的INITIAL_EXTENT设置。
compress默认值是Y,也就是说在创建表的时候会建立一个包含所有数据块容量的初始extent,该参数只在导出的时候有效,导入的时候无效(其实你如果加上该参数会报错)。
具体看下面例子。
首先是导出之前的表的信息:
SQL> Select segment_name,bytes/1024,blocks,Extents,initial_extent From user_segments;

SEGMENT_NAME BYTES/1024 BLOCKS EXTENTS INITIAL_EXTENT
--------------------------------------------------------------------------------- ---------- ---------- ---------- --------------
T1 704 88 11 65536

做一个默认的compress=y导出之后,重新导入之后表的信息:
SQL> /

SEGMENT_NAME BYTES/1024 BLOCKS EXTENTS INITIAL_EXTENT
--------------------------------------------------------------------------------- ---------- ---------- ---------- --------------
T1 704 88 11 720896

再做一个compress=n导出之后,重新导入之后表的信息:
SQL> /

SEGMENT_NAME BYTES/1024 BLOCKS EXTENTS INITIAL_EXTENT
--------------------------------------------------------------------------------- ---------- ---------- ---------- --------------
T1 704 88 11 65536
具体的也可以在创建表的dml中看到差异:
-- Create table
create table T1
(
id NUMBER(4),
name VARCHAR2(4)
)
tablespace STORE1
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 704K
minextents 1
maxextents unlimited
);

-- Create table
create table T1
(
id NUMBER(4),
name VARCHAR2(4)
)
tablespace STORE1
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);

其实这里还可以解答一个疑惑:为什么我的一个表明明没有数据,但是在导入的时候执行了很长时间,其实就是这个参数在作怪,通常由于频繁的insert、update然后delete表之后,这个表的extent参数还是没有该表,还是维持在当初扩展到最大的值,因此在导入创建表指定extent的时候耗费了大量时间。
-The End-


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics