BOOK → SQL Language Reference → 16 SQL Statements: CREATE SYNONYM to CREATE TRIGGER → CREATE TABLESPACE
1、数据文件的路径名:DATAFILE datefile_spec1 [,datefile_spec2] ...
2、文件的初始大小:[SIZE INTEGER [K|M|G|T|P|E]]
3、重用:[REUSE]
4、表明是否自动扩展:[AUTOEXTEND]
a) 不自动扩展:OFF
b) 自动扩展:ON
i. 表示数据文件满了以后,扩展的大小:[NEXT INTEGER [K|M|G|T|P|E]]
ii. 最大扩展到:[MAXSIZE ]
表示无限的表空间:[UNLIMITED]
表示数据文件的最大大小:INTEGER [K|M|G|T|P|E]]
说明了表空间如何管理范围。一旦你声明了这个子句,只能通过移植的方式改变这些参数。
1、如果希望表空间本地管理的话,声明local选项,本地管理表空间是通过位图管理的
EXTENT MANAGEMENT LOCAL
b) uniform说明表空间的范围的固定大小,缺省是1m。
UNIFORM [SIZE INTEGER [K|M|G|T|P|E]]
2、如果没有设置extent_management_clause,oracle会给他设置一个默认值。
a) compatible小于9.0.0:如果初始化参数,那么系统创建字典管理表空间。
b) compatible大于9.0.0:
i. 如果没有指定 default storage_clause,oracle创建一个自动分配的本地管理表空间。
ii. 如果指定 default storage_clause
如果指定了mininum extent,那么oracle判断mininum extent 、initial、next是否相等,以及pctincrease是否=0.
如果满足以上的条件,oracle创建一个本地管理表空间,extent size是initial。
如果不满足以上条件,那么oracle将创建一个自动分配的本地管理表空间。
如果没有指定mininum extent。initial、那么oracle判断next是否相等,以及pctincrease是否=0。
如果满足oracle创建一个本地管理表空间并指定uniform。
否则oracle将创建一个自动分配的本地管理表空间。
注意:本地管理表空间只能存储永久对象。如果你声明了local,将不能声明default storage_clause,mininum extent、temporary.
如果你倾向于保证数据一致性,也就是专注于查询,那么你有必要通过ALTER TABLESPACE undotbs1 RETENTION GUARANTEE,来保证一致性,也就是不管你空间够不够用,你都不可以使用inactive状态的区,这样就有可能导致由于没有可用的undo空间而导致数据库hang住,但是这样你可以保证查询语句执行时间在 undo_retention值之内的所有查询的一致性。
RETENTION
GUARANTEE
NOGUARANTEE