命令格式(红字为关键字,紫字为注释)
CREATE TABLE“方案名”.“表名”
(字段1 数据类型(长度),
字段2 数据类型(长度),
…….,
字段n 数据类型(长度),
CONSTRAINT约束名1 约束类型(约束参数),
CONSTRAINT约束名2 约束类型(约束参数)
………
CONSTRAINT约束名n 约束类型(约束参数))
TABLESPACE “表空间名”
STORAGE (INITIAL 1M*第一个区的大小*NEXT 1.5M*第二个区的大小*
MINIEXTENTS 2 *创建时已分配的区数* MAXEXTENTS 5 *可分配最大区数*
PCTINCREASE10 *每个区相对于上个区增长的百分比*
BUFFER_POOL DEFAULT *其参数有DEFAUT,RECYCLE和KEEP*) PCTFREE 10
PCTUSED 40
INITRANS 1
MAXTRANS 255;
要点释义
PCTFREE:指定表的每一个数据块为将来更新现有表行所保留的空间百分比。
其值必须在0和99之间,默认值为10。
PCTUSED:指定维持表的每个数据块已用空间的最小百分比。
当块中已用空间低于PCTUSED的时候,该块就成为新行插入对象。
默认值40。
注意:PCTFREE和PCTUSED之和要小于100,两者结合可以确定是把新行插入现有数据块还是新块中。
INITRANS:分配给表的每一个数据块的并发事务条目的初值。
范围1-255,默认1。
通常不需要改变INITRANS值。
每个更新块的事务需要该块中的一个事务条目,事务条目大小取决于操作系统,该参数保证最小数目的并发事务可以更快,有助避免动态分配事务条目的开销。
MAXTRANS:可更新分配给表的数据块的最大并发事务数。
范围1-255。
默认255。
一般不要更改MAXTRANS的值。
如果一个块中的并发事务超过了INITRANS的值,那么ORACLE在块中动态分配事务条目,直到超过MAXTRANS值。
例题
创建学生信息表,字段学号姓名年龄电话籍贯,约束:学号创建primary key约束并且不能为空,电话创建unique约束,年龄创建check约束(15-25岁)。
存储参数:初始区为1m大小,最大可分配区数4,区增量10。
PCTFREE为15,PCTUSED 为45。
INITRANS和MAXTRANS分别是2和244。
CREATE TABLE “SYSMAN”.“学生信息表”
(学号V ARCHAR2(12) NOT NULL,
姓名V ARCHAR2(8),
年龄NUMBER(2),
电话V ARCHAR2(2),
籍贯V ARCHAR2(2),
CONSTRAINT 年龄约束CHECK(年龄>=15 and 年龄<=25),
CONSTRAINT 学号约束PRIMARY KEY(学号),
CONSTRAINT 电话检查UNIQUE(电话))
TABLESPACE “SYSTEM”
STORAGE(INITIAL 1M
MAXEXTENTS 4
PCTINCREASE 10
BUFFER_POOL DEFAULT)
PCTFREE 15
PCTUSED 45
INITRANS 2
MAXTRANS 244;
扩展知识
可使用PCTFREE和PCTUSED参数控制数据块何时进入或离开表、索引或簇的可用清单。
使用PCTFREE参数设置最大的阈值,以控制对将来的行的更新操作保留多少数据块空间。
当某个数据块使PCTFREE装满时,ORACLE从相应段的可用清单中删除该块。
如果你预计只有很少的更新操作会增加行的大小,则可将PCTFREE设置为较低的值(如5或者10),使得ORACLE填满每个块的更多的空间。
但是,如果你预计更新操作将会经常增加行的大小,则将PCTFREE设置为较高的值(如20或30),使得ORACLE为已有行的更新操作保留更多的块空间;否则,将出现行链。
可使用PCTUSED参数设置最小块的阈值来控制一个数据块应在何时放回到相应段的可用清单中。
例如,所有段的缺省PCTUSED设置为40%,因此,当事务处理删除数据块中的行时,如果它只有39%是装满的,ORACLE将该数据块放回到相应段的可用清单中。
如果你预计很少有删除操作,则可设置PCTUSED为较高的值(如60),当偶然的删除操作发生时,使数据块弹出可用清单。
但是,如果你预计将PCTUSED 设置为较低的值(如40),使ORACLE不常产生块在表的可用空间中移进或移出的开销。
可使用INITRANS和MAXTRANS参数优化ORACLE如何在表、数据簇或索引的数据块中分配事务处理项。
INITRANS参数确定为事务处理项预分配多少数据块头部的空间。
当您预
计有许多并发事务处理要涉及某个块时,可为相关的事务处理项预分配更多的空间,以避免动态分配该空间的开销。
MAXTRANS参数限制并行使用某个数据块的事务处理的数量。
当您预计有许多事务处理将并行访问某个小表时,则当创建表时,应设置该表的事务处理项预分配更多的块空间,较高的MAXTRANS 参数值允许许多事务处理并行访问该表INITRANS 和MAXTRANS 参数的设置可能相应低一些(如分别为2和5)。
使用这样的设置,很少为事务处理项保留窨,使该表数据块的更多空间用于数据。