oracle分区表storage,建表空间参数uniform和storage的区别是什么?

表空间区的管理方式

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

create tablespace lmtbsb datafile 'xxx' size 10m extent management local autoallocate;

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

uniform

create tablespace lmtbsb datafile 'xxxx' size 10m extent management local uniform size 128k;

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

区空间的释放

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值