ITPub博客

首页 > Linux操作系统 > Linux操作系统 > create table之storage选项initial和其它

create table之storage选项initial和其它

原创 Linux操作系统 作者:wisdomone1 时间:2013-06-24 14:07:57 0 删除 编辑

---直接在表级别指定存储参数initial
SQL> create table t_table_level(a int) storage(initial 4m maxsize 10m);

Table created.

---未插入数据前不分配extent
SQL> select segment_name,extent_id,bytes,blocks from user_extents where segment_name='T_TABLE_LEVEL';

no rows selected

---仅插入一条记录
SQL> insert into t_table_level values(1);

1 row created.

SQL> commit;

Commit complete.

---一下子分配了4个extent,且每个extent大小为1m,刚好达到initial的4m,即initial与extent的关系
SQL> select segment_name,extent_id,bytes,blocks from user_extents where segment_name='T_TABLE_LEVEL';

SEGMENT_NAME          EXTENT_ID      BYTES     BLOCKS
-------------------- ---------- ---------- ----------
T_TABLE_LEVEL                 0    1048576        128
T_TABLE_LEVEL                 1    1048576        128
T_TABLE_LEVEL                 2    1048576        128
T_TABLE_LEVEL                 3    1048576        128


--若指定的initial 小于最小的extent 64k

SQL> drop table t_table_level purge;

Table dropped.

SQL> create table t_table_level(a int) storage(initial 60k);

Table created.

SQL> insert into t_table_level values(1);

1 row created.

SQL> commit;

Commit complete.

---若initial 小于最小的extent 64k,同样分配一个64k的extent
SQL> select segment_name,extent_id,bytes,blocks from user_extents where segment_name='T_TABLE_LEVEL';

SEGMENT_NAME          EXTENT_ID      BYTES     BLOCKS
-------------------- ---------- ---------- ----------
T_TABLE_LEVEL                 0      65536          8
   
   
SQL> drop table t_table_level purge;

Table dropped.

SQL> create table t_table_level(a int) storage(initial 70k);

Table created.

SQL> insert into t_table_level values(1);

1 row created.

SQL> commit;

Commit complete.

---如果initial大于最小的extent而小于次小的extent,则分配2个64k extent
SQL> select segment_name,extent_id,bytes,blocks from user_extents where segment_name='T_TABLE_LEVEL';

SEGMENT_NAME          EXTENT_ID      BYTES     BLOCKS
-------------------- ---------- ---------- ----------
T_TABLE_LEVEL                 0      65536          8
T_TABLE_LEVEL                 1      65536          8
   
   
小结:1,initial 与next针对segment中extent的分配
     2,即initial与next决定创建segment及扩展segment
     3,extent的大小有几类:64K, 1M, 8M, and 64M
     4,若initial<64k,则初始创建1个64k的extent
         64k         其它同上理

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9240380/viewspace-764659/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb 工作经历: 中国普天 北京科蓝 北京云和恩墨 北京神州新桥

注册时间:2008-04-04

  • 博文量
    2189
  • 访问量
    12689906