昨天,一个同事请教了一些关于Oracle表空间数据文件自增长的问题,解答过程中顺便整理起来,以后其他同事有同样的疑问时可以直接查阅。
实验内容:
- 创建MYTEST表空间,默认不开启自增长。
- 给MYTEST表空间添加一个数据文件,开启自增长,但是不设置自增长的SIZE。
- 给MYTEST表空间添加一个数据文件,开启自增长,指定自增长的SIZE。
操作过程记录如下:(已经将多余的结果进行过滤)
SYS@orcl>CREATE TABLESPACE MYTEST DATAFILE '/ocp_data02/datafiles/MYTEST01.DBF' SIZE 10M AUTOEXTEND OFF;
Tablespace created.
SYS@orcl>select file_name,tablespace_name,bytes,autoextensible,increment_by from dba_data_files;
FILE_NAME TABLESPACE_NAME BYTES AUT INCREMENT_BY
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/ocp_data02/datafiles/MYTEST01.DBF MYTEST 10485760 NO 0
SYS@orcl>ALTER TABLESPACE MYTEST ADD DATAFILE '/ocp_data02/datafiles/MYTEST02.DBF' SIZE 10M AUTOEXTEND ON;
Tablespace altered.
SYS@orcl>ALTER TABLESPACE MYTEST ADD DATAFILE '/ocp_data02/datafiles/MYTEST03.DBF' SIZE 10M AUTOEXTEND ON NEXT 10M;
Tablespace altered.
SYS@orcl>select file_name,tablespace_name,bytes,autoextensible,increment_by from dba_data_files;
FILE_NAME TABLESPACE_NAME BYTES AUT INCREMENT_BY
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/ocp_data02/datafiles/MYTEST01.DBF MYTEST 10485760 NO 0
/ocp_data02/datafiles/MYTEST02.DBF MYTEST 10485760 YES 1
/ocp_data02/datafiles/MYTEST03.DBF MYTEST 10485760 YES 1280
结论:
- 不开启自增长的情况下,INCREMENT_BY为0。
- 开启自增长,不设置增长SIZE的情况下,INCREMENT_BY系统默认为1个数据块大小,即:8K*1Block=8K
- 开启自增长,设置增长SIZE的情况下,INCREMENT_BY为SIZE/BLOCK_SIZE,即:1024K*10M/8K=1280.