表空间的两种管理机制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

表空间区的管理方式

LMT & DMT

LMT有两种方式控制区的大小:

autoallocate # 自动分配

uniform # 由DBA指定每个区的大小

区的分配机制

存储参数(storage parameters):用于控制段的空间分配,即如何给段分配空间。有两个级别的存储参数,表空间级别和表级别。表空间级别的存储参数是在创建表空间的时候指定的,用于定义该表空间中的表(段)的空间分配原则。表级别的存储参数是在创建表的时候定义表(段)的空间分配原则。

create tablespace sto1 datafile 'xxxx' size 10m default storage (initial 128k next 128k pctincrease 40 minextents 1 maxextents 999);

create table tbsto (

id number not null,

name varchar2(10) not null

) tablespace sto1

storage (initial 1m next 2m pctincrease 60 minextents 2 maxextents unlimited);

若建表时不指定存储参数,表将继承表空间的存储参数。

存储参数有:

initial # 表示分配给表(段)的初始区的大小

next # 指定第二个区的大小

pctincrease # 指定第三个及后续分配区的增长百分百

minextents # 指定创建表时,至少要分配多少个区给这个表(段)

maxextents # 指定可以给这个表(段)区的最大数量

如果表空间是LMT,可以指定区有统一的大小,也可以让Oracle决定后续的区大小。在创建表空间时,可以在extent management local中指定使用autoallocate和uniform来指定使用哪种分配方式。

autoallocate

createtablespacelmtbsbdatafile 'xxx' size 10m extent management local autoallocate;

用户不指定区的大小,区的大小由Oracle决定。与block_size和已分配的大小有关。uniform

createtablespacelmtbsbdatafile 'xxxx' size 10m extent management local uniform size 128k;

Oracle会自动分配大小相同的区(128k),所有区的大小相同。

区空间的释放

truncate table ... drop storage # 回收分配给一个段的区

alter table ... deallocate unused # 回收已经分配给一个段,但还未使用的区

相关文档
最新文档