Tablespaces allocate space in extents.Tablespace can be created to use one of the following two methods of keeping track of free and used space.
Extent Management:
1)locally managed
tablespace分配表空单是以扩展为单位的。本地管理是通过位图来管理表空间中的扩展的。在位图中的每一个位代表一个块或者一组块。当一个扩展被分配或者空闲了oracle server改变相应位图状态以反映块的新的状态。
sql : CREATE TABLESPACE lmt DATAFILE 'lmt01.dbf' SIZE 100M REUSE EXTENT MANAGEMENT LOCAL;
2)dictionary-managed
数据字典管理是通过数据字典来管理扩展的。oracle server 在数据字典中更新相应的表,无论什么时候一个扩展被分配或者不被分配。这是用于向后兼容.oracle推荐使用本地管理。
sql:CREATE TABLESPACE dmt DATAFILE 'dmt01.dbf' SIZE 100M REUSE EXTENT MANAGEMENT DICTIONARY
Storage for Locally Managed Tablespaces
在本地管理表空间的扩展以以下两种方式分配。
1)Automatic
也被称为自动分配。它指定表空间的扩展的大小由系统管理。你不能指定一个扩展大小。你也不能为一个临时表空间指定为自动分配(意思是临时表空间只能指定Uniform)
sql:CREATE TABLESPACE lmt DATAFILE 'lmt01.dbf' SIZE 100M REUSE EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
2)Uniform
表空间以你指定的扩展的大小进行管理(the tablespace is managed with uniform extends of a size that you specify).默认的大小是1M.临时表空间的所有扩展都是统一的,而且是默认值,不能为undo表空间指定统一的extend(即undo表空间只能是automatic)
sql:CREATE TABLESPACE lmt DATAFILE 'lmt01.dbf' SIZE 100M REUSE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
Segment space management within a locally managed tablespace
1)Automatic
oracle使用位图管理在段中的空闲空间。位图描述了在段中的每个块中的对于inserting row可用的空间的总和。当多或少的数据块中的空间变的可用时,它的新状态被反映在位图中。用位图管理,oralce数据库管理空闲空间更自动化,这种形式的空间管理被称为自动段空间管理(Automatic Segment Space Management(ASSM));
sql:CREATE TABLESPACE ts_assm DATAFILE '/u01/oracle/data/ts_assm.dbf' SIZE 500M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
2)Manual
这个参数表明你想使用空闲列表管理段中的空闲空间。空闲列表列出对于inserting row可用空间的数据块(free lists are lists of data blocks that have space available for inserting rows).这种管理段空间的模式叫手动段空间管理,因为对于在表空间中create的对像,需要指定和调整pctused,freelists,freelist groups这些存储参数.Manual是为了向后兼容的。推荐使用ASSM.
sql:CREATE TABLESPACE ts_assm DATAFILE '/u01/oracle/data/ts_assm.dbf' SIZE 500M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT MANUAL ;
附加:
logging
这个子句声明这个表空间上所有的用户对象的日志属性(缺省是logging),包括表,索引,分区,物化视图,物化视图上的索引,分区。
可以overwrite.
Extent Management:
1)locally managed
tablespace分配表空单是以扩展为单位的。本地管理是通过位图来管理表空间中的扩展的。在位图中的每一个位代表一个块或者一组块。当一个扩展被分配或者空闲了oracle server改变相应位图状态以反映块的新的状态。
sql : CREATE TABLESPACE lmt DATAFILE 'lmt01.dbf' SIZE 100M REUSE EXTENT MANAGEMENT LOCAL;
2)dictionary-managed
数据字典管理是通过数据字典来管理扩展的。oracle server 在数据字典中更新相应的表,无论什么时候一个扩展被分配或者不被分配。这是用于向后兼容.oracle推荐使用本地管理。
sql:CREATE TABLESPACE dmt DATAFILE 'dmt01.dbf' SIZE 100M REUSE EXTENT MANAGEMENT DICTIONARY
Storage for Locally Managed Tablespaces
在本地管理表空间的扩展以以下两种方式分配。
1)Automatic
也被称为自动分配。它指定表空间的扩展的大小由系统管理。你不能指定一个扩展大小。你也不能为一个临时表空间指定为自动分配(意思是临时表空间只能指定Uniform)
sql:CREATE TABLESPACE lmt DATAFILE 'lmt01.dbf' SIZE 100M REUSE EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
2)Uniform
表空间以你指定的扩展的大小进行管理(the tablespace is managed with uniform extends of a size that you specify).默认的大小是1M.临时表空间的所有扩展都是统一的,而且是默认值,不能为undo表空间指定统一的extend(即undo表空间只能是automatic)
sql:CREATE TABLESPACE lmt DATAFILE 'lmt01.dbf' SIZE 100M REUSE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
Segment space management within a locally managed tablespace
1)Automatic
oracle使用位图管理在段中的空闲空间。位图描述了在段中的每个块中的对于inserting row可用的空间的总和。当多或少的数据块中的空间变的可用时,它的新状态被反映在位图中。用位图管理,oralce数据库管理空闲空间更自动化,这种形式的空间管理被称为自动段空间管理(Automatic Segment Space Management(ASSM));
sql:CREATE TABLESPACE ts_assm DATAFILE '/u01/oracle/data/ts_assm.dbf' SIZE 500M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
2)Manual
这个参数表明你想使用空闲列表管理段中的空闲空间。空闲列表列出对于inserting row可用空间的数据块(free lists are lists of data blocks that have space available for inserting rows).这种管理段空间的模式叫手动段空间管理,因为对于在表空间中create的对像,需要指定和调整pctused,freelists,freelist groups这些存储参数.Manual是为了向后兼容的。推荐使用ASSM.
sql:CREATE TABLESPACE ts_assm DATAFILE '/u01/oracle/data/ts_assm.dbf' SIZE 500M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT MANUAL ;
附加:
logging
这个子句声明这个表空间上所有的用户对象的日志属性(缺省是logging),包括表,索引,分区,物化视图,物化视图上的索引,分区。
可以overwrite.