创建一个本地管理表空间SQL> CREATE TABLESPACE TSP_TEST
2 LOGGING
3 DATAFILE 'D:\ORACLE\ORADATA\ORACLE8\APTEST.ora' SIZE5M
4 EXTENT MANAGEMENT LOCAL UNIFORM. SIZE 64K ;
Tablespace created.
SQL> select file_id from dba_data_files where tablespace_name='TSP_TEST';
FILE_ID
----------
31
SQL> alter system dump datafile 31 block 2 ;
System altered.
*** 2005-05-21 22:22:366
Start dump data blocks tsn: 32 file#: 31 minblk 2 maxblk 2
buffer tsn: 32 rdba: 0x07c00002 (31/2)
scn: 0x0000.01a2eabc seq: 0x01 : 0x00 tail: 0xeabc1d01
frmt: 0x02 chkval: 0x0000 type: 0x1d=KTFB Bitmapped File Space Header
File Space Header Block:
Header Control:
RelFno: 31, Unit: 8, Size: 640, Flag: 1
AutoExtend: NO, Increment: 0, MaxSize: 0
Initial Area: 7, Tail: 640, First: 0, Free: 79
Header Opcode:
Save: No Pending Op
End dump data blocks tsn: 32 file#: 31 minblk 2 maxblk 2
RelFno:相对文件号
Unit 8每个单元的块数,在创建表空间时指定的uniform的大小,每个块的大小为8192,则
64K/8K = 8
Size:文件包含的块数,文件大小:640*8k=5M
Init Area:7表示有7个block由于记录位图的信息,
SQL> alter system dump datafile 31 block 3 ;
System altered.
*** 2005-05-21 22:24:10.872
Start dump data blocks tsn: 32 file#: 31 minblk 3 maxblk 3
buffer tsn: 32 rdba: 0x07c00003 (31/3)
scn: 0x0000.01a2eab6 seq: 0x01 : 0x00 tail: 0xeab61e01
frmt: 0x02 chkval: 0x0000 type: 0x1e=KTFB Bitmapped File Space Bitmap
File Space Bitmap Block:
BitMap Control:
RelFno: 31, BeginBlock: 9, Flag: 0, First: 0, Free: 63488
0000000000000000 0000000000000000 0000000000000000 0000000000000000
......
0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
End dump data blocks tsn: 32 file#: 31 minblk 3 maxblk 3
Flag为0表示这是持久表空间,为1表示是临时文件
First表示从何处开始寻找空闲空间
Free表示位图中的空余位数,
SQL> create table test tablespace tsp_test
2 as select * from dba_objects ;
Table created.
SQL> create table test1 tablespace tsp_test1 as select * from test ;
Table created.
SQL> alter system dump datafile 31 block 3 ;
System altered.
Start dump data blocks tsn: 32 file#: 31 minblk 3 maxblk 3
buffer tsn: 32 rdba: 0x07c00003 (31/3)
scn: 0x0000.01a2eaf9 seq: 0x01 : 0x00 tail: 0xeaf91e01
frmt: 0x02 chkval: 0x0000 type: 0x1e=KTFB Bitmapped File Space Bitmap
File Space Bitmap Block:
BitMap Control:
RelFno: 31, BeginBlock: 9, Flag: 0, First: 50, Free: 63438
FFFFFFFFFFFFFFFF FFFFFFFF0F000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
......
0000000000000000 0000000000000000 0000000000000000 0000000000000000
End dump data blocks tsn: 32 file#: 31 minblk 3 maxblk 3
此处表示使用了50个单元
在某些平台下,高位与低位是互换的,例如:
FF=>1111 1111 =>交换高低位
=> 1111 1111 (已用已用已用已用已用已用已用已用)
0F=> 0000 1111 =>交换高低位
=> 1111 0000 (已用已用已用已用未用未用未用未用)
如果你删除这个表,在位图的开始处有空闲块,First值可以恢复到0
SQL> alter system dump datafile 31 block 3 ;
System altered.
SQL> drop table test ;
Table dropped.
SQL> alter system dump datafile 31 block 3 ;
System altered.
Start dump data blocks tsn: 32 file#: 31 minblk 3 maxblk 3
buffer tsn: 32 rdba: 0x07c00003 (31/3)
scn: 0x0000.01a2ec76 seq: 0x01 : 0x00 tail: 0xec761e01
frmt: 0x02 chkval: 0x0000 type: 0x1e=KTFB Bitmapped File Space Bitmap
File Space Bitmap Block:
BitMap Control:
RelFno: 31, BeginBlock: 9, Flag: 0, First: 0, Free: 63438
000000000000FCFF FFFFFFFF0F000000 0000000000000000 0000000000000000
......
0000000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
End dump data blocks tsn: 32 file#: 31 minblk 3 maxblk 3