oracle 在表空间中创建表.参数解释create table TABLE_NAME( name VARCHAR2(32) not null)tablespace USERS pctfree 10 --这是什么意思 initrans 1 --这是什么意思 maxtrans 255 --这是什么意思 storage --这是什么意

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 04:05:13
oracle 在表空间中创建表.参数解释create table TABLE_NAME(  name          VARCHAR2(32) not null)tablespace USERS  pctfree 10 --这是什么意思  initrans 1 --这是什么意思  maxtrans 255 --这是什么意思  storage --这是什么意

oracle 在表空间中创建表.参数解释create table TABLE_NAME( name VARCHAR2(32) not null)tablespace USERS pctfree 10 --这是什么意思 initrans 1 --这是什么意思 maxtrans 255 --这是什么意思 storage --这是什么意
oracle 在表空间中创建表.参数解释
create table TABLE_NAME
(
name VARCHAR2(32) not null
)
tablespace USERS
pctfree 10 --这是什么意思
initrans 1 --这是什么意思
maxtrans 255 --这是什么意思
storage --这是什么意思
(
initial 3M --这是什么意思
minextents 1--这是什么意思
maxextents unlimited --这是什么意思
);
高手解释下

oracle 在表空间中创建表.参数解释create table TABLE_NAME( name VARCHAR2(32) not null)tablespace USERS pctfree 10 --这是什么意思 initrans 1 --这是什么意思 maxtrans 255 --这是什么意思 storage --这是什么意
1、能够对空闲空间产生影响的参数有两个:pctfree和pctused.对于手工管理的表空间,在特定段中的所有数据块,可使用两个空间管理参数pctfree和pctused来控制insert和update对空闲空间的使用.当创建或修改表时可指定这两个参数.创建或修改一个拥有自己的索引段的索引时可指定pctfree参数.
pctfree参数为块中行的更新预留了空闲空间的最小百分比,默认值为10.例如,假定在Create table语句中指定了pctfree为20,则说明在该表的数据段内每个数据块的20%被作为可利用的空闲空间,用于更新已在数据块内存在的数据行.其余80%是用于插入新的数据行,直到达到80%为止.显然,pctfree值越小,则为现存行更新所预留的空间越少.因此,如果pctfree设置得太高,则在全表扫描期间增加I/O,浪费磁盘空间;如果pctfree设置得太低,则会导致行迁移.
2、每个块都有一个块首部.这个块首部中有一个事务表.事务表中会建立一些条目来描述哪些事务将块上的哪些行/元素锁定.这个事务表的初始大小由对象的INITRANS 设置指定.对于表,这个值默认为2(索引的INITRANS 也默认为2).事务表会根据需要动态扩展,最大达到MAXTRANS 个条目(假设块上有足够的自由空间).所分配的每个事务条目需要占用块首部中的23~24 字节的存储空间.注意,对于Oracle 10g,MAXTRANS 则会忽略,所有段的MAXTRANS 都是255.
也就是说,如果某个事物锁定了这个块的数据,则会在这个地方记录事务的标识,当然那个事务要先看一下这个地方是不是已经有人占用了,如果有,则去看看那个事务是否为活动状态.如果不活动,比如已经提交或者回滚,则可以覆盖这个地方.如果活动,则需要等待(闩的作用)
3、storage 指的是和存储相关的选项
4、 initial 3M --分配给segment的第一个extent的大小,以字节为单位,这个参数不能在alter语句中改变,如果指定的值小于最小值,则按最小值创建.
minextents 1--segment第一次创建时分配的extent数量
maxextents unlimited --随着segment中数据量的增长,最多可分配的extent数量无限制