本地管理表空间(6)

六、其它留给大家讨论的地方
我这里的文章仅仅是抛一个砖头,也写的很仓促,难免可能有错误,欢迎大家继续讨论,我会继续整理相关内容并返回给大家。
大家还可以从多个方面讨论,如
1、 在实际使用中,本地管理表空间带来的好处
2、 本地管理表空间的bug,如8i中在临时,回滚中使用本地管理表空间
3、 关于本地管理表空间其他看法
……
……s

若 db_block-size 为 16k和16k以下,数据文件头是 64k 保留空间
若是32k的block size ,则是 保留 128k

/******************************************/

SQL> create tablespace test datafile 'e:test.dbf' size 10M
2 extent management local uniform size 32k;

表空间已创建。

SQL> select * from user_tablespaces where tablespace_name = 'TEST';

TABLESPACE_NAME BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS
------------------------------ ---------- -------------- ----------- -----------
MAX_EXTENTS PCT_INCREASE MIN_EXTLEN STATUS CONTENTS LOGGING FOR EXTENT_MAN
----------- ------------ ---------- --------- --------- --------- --- ----------
ALLOCATIO SEGMEN
--------- ------
TEST 8192 32768 32768 1
2147483645 0 32768 ONLINE PERMANENT LOGGING NO LOCAL
UNIFORM MANUAL


SQL> create table test (id number(3)) tablespace test;

表已创建。

SQL> insert into test values (1);

已创建 1 行。

SQL> commit;

提交完成。

SQL> select table_name, tablespace_name, initial_extent, next_extent
2 from user_tables where table_name ='TEST';

TABLE_NAME TABLESPACE_NAME INITIAL_EXTENT
------------------------------ ------------------------------ --------------
NEXT_EXTENT
-----------
TEST TEST 32768
32768


SQL> execute show_space('TEST');

PL/SQL 过程已成功完成。

SQL> set serverout on
SQL> execute show_space('TEST');
Free Blocks.............................1
Total Blocks............................4
Total Bytes.............................32768
Unused Blocks...........................2
Unused Bytes............................16384
Last Used Ext FileId....................15
Last Used Ext BlockId...................9
Last Used Block.........................2

PL/SQL 过程已成功完成。

文件头好像只用了32k

为什么total block是4?

而且插入数据可以发现,第一个block不会存放数据。
total -unused =2,说明使用了2个block,freelist中只有一个。另一个不会存放数据,当其他三个block写满,会重新分配新的block。
从Last Used Block.........................2也可以看出,是从第二个block开始使用的。
我认为,第一个block存放的是表头消息

/*****************************************/

uniform size 32k; -------- extent 都是 32k

所以你的这个表空间的extent 大小是 32k
32k/8k = 4
total = 4

Last Used Ext BlockId...................9
该表的 extent 的起始 block_id ,为9 ,前面 1---8 为数据文件头

Last Used Block.........................2

在该表的最近分配的extent 中使用到了第二个block,第一个block is segment header

[@more@]

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

转载于:http://blog.itpub.net/18921899/viewspace-1016986/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值