问题呈现:仓库数据库中某表原为按日期RANGE分区,后因业务需求改表结构为RANGE+LIST复合分区,导致日常逻辑备份时,生成的dmp文件大小比修改表结构前多1倍左右,导出完成时间也相应多一倍。经核查数据库中表修改前后每日分区大小基本一致,即产生的问题是:RANGE分区、RANGE+LIST复合分区相同大小的数据使用export导出为dmp文件时文件大小相差一倍,请高手指点问题原因!!
以下为修改前后表接口和export语句:
-- 修改前表结构
CREATE TABLE TEST
(
COLUMN1 DATE,
COLUMN2 VARCHAR2(10),
...
...
)
TABLESPACE TBS_XXX
PARTITION BY RANGE (COLUMN1)
(
PARTITION P_20130301 VALUES LESS THAN (TO_DATE(' 2013-03-02 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
LOGGING
COMPRESS
TABLESPACE TBS_XXX
....
....
)
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;-- 修改后表结构
CREATE TABLE TEST
(
COLUMN1 DATE,
COLUMN2 VARCHAR2(10),
...
...
)
PARTITION BY RANGE (COLUMN1)
SUBPARTITION BY LIST (COLUMN2)
SUBPARTITION TEMPLATE
(SUBPARTITION SUB_0 VALUES ('0') TABLESPACE TBS_XXX,
SUBPARTITION SUB_1 VALUES ('1') TABLESPACE TBS_XXX,
SUBPARTITION SUB_2 VALUES ('2') TABLESPACE TBS_XXX,
SUBPARTITION SUB_3 VALUES ('3') TABLESPACE TBS_XXX,
SUBPARTITION SUB_4 VALUES ('4') TABLESPACE TBS_XXX,
SUBPARTITION SUB_5 VALUES ('5') TABLESPACE TBS_XXX,
SUBPARTITION SUB_6 VALUES ('6') TABLESPACE TBS_XXX,
SUBPARTITION SUB_7 VALUES ('7') TABLESPACE TBS_XXX,
SUBPARTITION SUB_8 VALUES ('8') TABLESPACE TBS_XXX,
SUBPARTITION SUB_9 VALUES ('9') TABLESPACE TBS_XXX,
SUBPARTITION SUB_NUL VALUES (NULL) TABLESPACE TBS_XXX,
SUBPARTITION SUB_OTH VALUES (DEFAULT) TABLESPACE TBS_XXX
)
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;-- export 语句
userid="username/paswd"
log=***.log
file=(
file1.dmp,
file2.dmp,
file3.dmp,
file4.dmp,
...
...
)
filesize=2147483648
tables=test
grants=n
rows=y
direct=y
statistics=none
recordlength=32768oracleexp复合分区
以下为修改前后表接口和export语句:
-- 修改前表结构
CREATE TABLE TEST
(
COLUMN1 DATE,
COLUMN2 VARCHAR2(10),
...
...
)
TABLESPACE TBS_XXX
PARTITION BY RANGE (COLUMN1)
(
PARTITION P_20130301 VALUES LESS THAN (TO_DATE(' 2013-03-02 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
LOGGING
COMPRESS
TABLESPACE TBS_XXX
....
....
)
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;-- 修改后表结构
CREATE TABLE TEST
(
COLUMN1 DATE,
COLUMN2 VARCHAR2(10),
...
...
)
PARTITION BY RANGE (COLUMN1)
SUBPARTITION BY LIST (COLUMN2)
SUBPARTITION TEMPLATE
(SUBPARTITION SUB_0 VALUES ('0') TABLESPACE TBS_XXX,
SUBPARTITION SUB_1 VALUES ('1') TABLESPACE TBS_XXX,
SUBPARTITION SUB_2 VALUES ('2') TABLESPACE TBS_XXX,
SUBPARTITION SUB_3 VALUES ('3') TABLESPACE TBS_XXX,
SUBPARTITION SUB_4 VALUES ('4') TABLESPACE TBS_XXX,
SUBPARTITION SUB_5 VALUES ('5') TABLESPACE TBS_XXX,
SUBPARTITION SUB_6 VALUES ('6') TABLESPACE TBS_XXX,
SUBPARTITION SUB_7 VALUES ('7') TABLESPACE TBS_XXX,
SUBPARTITION SUB_8 VALUES ('8') TABLESPACE TBS_XXX,
SUBPARTITION SUB_9 VALUES ('9') TABLESPACE TBS_XXX,
SUBPARTITION SUB_NUL VALUES (NULL) TABLESPACE TBS_XXX,
SUBPARTITION SUB_OTH VALUES (DEFAULT) TABLESPACE TBS_XXX
)
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;-- export 语句
userid="username/paswd"
log=***.log
file=(
file1.dmp,
file2.dmp,
file3.dmp,
file4.dmp,
...
...
)
filesize=2147483648
tables=test
grants=n
rows=y
direct=y
statistics=none
recordlength=32768oracleexp复合分区
解决方案 »
- 求救,大虾帮忙看下sql怎么写
- 简单的问题,求解...
- oracle数据库中恢复记录表失败
- BerkeleyDB怎么提交数据?
- 请教一个初级问题。急。。。。。。。。。在线等待
- 请教关于日志分析工具logminer的问题
- 十万火急!Oracle客户端链接远程服务器!~~!!!!!!
- hpux下如何用c语言访问oracle数据库?
- timesten内存数据库:查询row_number排序后的结果不正确
- 怎么查询全部执行过的sql语句?
- 问一下UPDATE想用WHERE条件中某表的字段的值怎么写
- tomcat上发布项目报ORA-12505, TNS:listener does not currently know of SID given in conn
2、如果你要降低导出数据量的一个方法就是你重新编写导出语句,按照子分区的方式导出