一个table的数据存放在block中,每次create table时,oracle以extent为单位分配空间,该table占用的空间为segment,segment由extent组成,extent由block组成
对于ASSM的管理segment
select segment_name,header_file,header_block,blocks,extents from dba_segments where segment_name='T3'
---- ---- ----- ---------- -----
T3 5 11 10240 81
header_block为该table的块头,存放了一级位图和二级位图的地址以及该segment拥有的extent总数
select extent_id,block_id,file_id,blocks from dba_extents where segment_name='T3' order by extent_id;
---- ----- ----- -----
0 9 5 8
1 17 5 8
.........
block_id为segment的一级位图,记录了其所管辖的block的信息,是free,or full 状态
要找空闲块时,先从一级位图中找空闲,找不到再从二级位图或是header block中查找其他一级位图的地址,再查找空闲块
block_id=10的即为二级位图块的地址(只有一个)
利用alter system dump datafile 5 block 11;
alter system dump datafile 5 block 10;
alter system dump datafile 5 block 9;
alter system dump datafile 5 block 25;--第二个一级位图的地址
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24849178/viewspace-710172/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24849178/viewspace-710172/