在上一章《Oracle数据库体系结构(三)_逻辑结构》中关于区的分配机制,它是与Oracle数据库的存储在参数是紧密联系,本节简单介绍下Oracle数据库的存储参数。
存储参数主要用于控制段的空间分配。有两个级别的存储参数,即表空间级和表级别。
- 表空间级别是在创建表空间时创建,用于定义表空间中表(段)的空间的分配原则。
- 表级别是在创建数据表时创建,用于定义表(段)的空间分配原则
这两种级别的存储参数都是用于控制表(段)的空间分配。在使用Create table命令时创建表时,若没有指定该表的存储参数,Oracle则从表空间中继承存储参数,利用继承的存储参数来对段进行管理。
创建存储参数的方式:
- 表空间级:在创建表空间时,使用Default Storage子句设置对应的存储参数
create Tablespace xddbs
datafile 'F:\app\oradata\tablespace\xd_dbs.dbf'
default storage (
initial 120K
next 1M
pctincrease 40
minextents 1
maxextents unlimited)
online;
- 表级:在创建表时,使用Storage子句设置对应的存储参数
create table CUSTOMER_INFO
(
cusid VARCHAR2(40) not null,
cusname VARCHAR2(80),
custype VARCHAR2(20),
certtype VARCHAR2(20),
certid VARCHAR2(40),
cuspassword VARCHAR2(20),
remark VARCHAR2(250),
status VARCHAR2(20),
inputdate VARCHAR2(20),
)
tablespace xddbs
storage
(
initial 1M
next 2M
pctincrease 60
minextents 1
maxextents unlimited
);
存储参数的类型:
- initial :表示分配给表(段)的初始大小
- next:指定第二个区的大小
- pctincrease ::指定第三个及后续分配区的增长百分比
- minextents:指定创建表时,至少要分配多少区空间给这个表
- maxextents:指定可以分配给这个表(段)的最大数量
若表空间 管理方式是本地管理的表空间,则所有区的有统一的大小,可以让Oracle决定后续区的大小。创建表空间时,可以在extent management local子句中使用Autoallocate 和 Uniform参数来指定使用那种分配方式
- Autoallocate:指定该中方式时,用户不可以指定区的大小,它由Oracle自身决定。Oracle将根据需要分配大小合适的区。在通常情况下,会分配大小为64KB的区,若块的大小超过了16KB,Oracle则会分配1M的区
create Tablespace xddbs
datafile 'F:\app\oradata\tablespace\xd_dbs.dbf'
size 50M;
extend managetment local Autoallocate;
- Uniform:使用该方式,则不需要数据库管理员的任何干预,Oracle会自动分配大小相同的区。所有的区大小都相同
create Tablespace xddbs
datafile 'F:\app\oradata\tablespace\xd_dbs.dbf'
size 50M;
extend managetment uniform size 128K;