本地管理表空間的bitmap結構測試
建立表空間用於測試:
SQL> create tablespace bitmap_tbs
2 datafile 'e:oracleproduct10.2.0oradatabitmap_tbs.dbf'
3 size 10m
4 uniform size 128k
5 /
表空間已建立。
查詢資料檔案的檔案號:
FILE_NAME FILE_ID
---------- -------------
E:ORACLEPRODUCT10.2.0ORADATABITMAP_TBS.DBF 5
SQL> select file_name,file_id from dba_data_files;
匯出第二個塊的內容;
SQL> alter system dump datafile 5 block 2;
系統已更改。
File Space Header Block:
Header Control:
RelFno: 5, Unit: 16, Size: 1280, Flag: 1
AutoExtend: NO, Increment: 0, MaxSize: 0
Initial Area: 7, Tail: 1272, First: 0, Free: 79
Deallocation scn: 0.0
Header Opcode:
Save: No Pending Op
End dump data blocks tsn: 10 file#: 5 minblk 2 maxblk 2
解釋:RelFno: 5 檔案號
Unit: 16 每個extent16個資料塊
Size: 1280 此檔案一共1280個資料塊
Flag: 1 待考查
再來匯出第三個塊:
SQL> alter system dump datafile 5 block 3;
系統已更改。
*** 2006-04-11 11:20:13.392
Start dump data blocks tsn: 10 file#: 5 minblk 3 maxblk 3
……
File Space Bitmap Block:
BitMap Control:
RelFno: 5, 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: 10 file#: 5 minblk 3 maxblk 3
解釋:
RelFno: 5,
BeginBlock: 9 第一個bit對應的資料塊號
Flag: 0 0表示permanent檔案,1表示temp檔案
First: 0 在哪裡開始尋找free space
Free: 63488
在此表空間建立一個表:
SQL> create table test
2 tablespace bitmap_tbs
3 as
4 select * from dba_objects
5 /
表已建立。
再匯出第三個資料塊:
SQL> alter system dump datafile 5 block 3;
系統已更改。
*** 2006-04-11 11:45:44.254
Start dump data blocks tsn: 10 file#: 5 minblk 3 maxblk 3
……
File Space Bitmap Block:
BitMap Control:
RelFno: 5, BeginBlock: 9, Flag: 0, First: 10, Free: 63478
FF03000000000000 0000000000000000 0000000000000000 0000000000000000
0000000000000000 0000000000000000 0000000000000000 0000000000000000
……
0000000000000000 0000000000000000 0000000000000000 0000000000000000
End dump data blocks tsn: 10 file#: 5 minblk 3 maxblk 3
檢視一下此表被分配的extent資訊:
SQL> select file_id,extent_id,blocks
2 from dba_extents
3 where segment_name='TEST'
4 /
FILE_ID EXTENT_ID BLOCKS
------------ --------------- ------------
5 0 16
5 1 16
5 2 16
5 3 16
5 4 16
5 5 16
5 6 16
5 7 16
5 8 16
5 9 16
已選擇10行。
我們看匯出檔案中的FF03與這裡的查詢結果的對應關係:
FF經過swap後,還是FF,即1111 1111
03經過swap後,為110000,
組合到一起為1111 1111 11 0000,很明顯這是10個1,
表示前10個extent是被佔用的,這也與匯出檔案中的first為10對應。
我們再建立一個表,然後匯出第三個資料塊:
SQL> create table test2
2 tablespace bitmap_tbs
3 as
4 select * from dba_objects
5 where rownum<5001
6 /
表已建立。
SQL> alter system dump datafile 5 block 3;
系統已更改。
*** 2006-04-11 12:00:04.100
Start dump data blocks tsn: 10 file#: 5 minblk 3 maxblk 3
……
BitMap Control:
RelFno: 5, BeginBlock: 9, Flag: 0, First: 15, Free: 63473
FF7F000000000000 0000000000000000 0000000000000000 0000000000000000
……
0000000000000000 0000000000000000 0000000000000000 0000000000000000
End dump data blocks tsn: 10 file#: 5 minblk 3 maxblk 3
查詢一下test2被分配到的extent情況:
SQL> select file_id,extent_id,blocks
2 from dba_extents
3 where segment_name='TEST2' and owner='SYS'
4 /
FILE_ID EXTENT_ID BLOCKS
------------ --------------- ------------
5 0 16
5 1 16
5 2 16
5 3 16
5 4 16
可以看到test2表被分配了5個extent,我們再看剛才所得到的匯出檔案中的FF7F:
FF經過swap後,是1111 1111,
7F的二進位制為111 1111,swap後為1111 1110,
組合到一起,即1111 1111 1111 111,表示前面15個extent被佔用。
我們再刪除第一個表,
*** 2006-04-11 12:06:15.885
Start dump data blocks tsn: 10 file#: 5 minblk 3 maxblk 3
……
File Space Bitmap Block:
BitMap Control:
RelFno: 5, BeginBlock: 9, Flag: 0, First: 0, Free: 63483
007C000000000000 0000000000000000 0000000000000000 0000000000000000
……
0000000000000000 0000000000000000 0000000000000000 0000000000000000
End dump data blocks tsn: 10 file#: 5 minblk 3 maxblk 3
我們考查007C:00經過swap後為0000 0000,
7c二進位制為111 11經過swap後為11111,
表示前8個區free,從第9個到第14個被佔用。
我們再刪除test2表,這時bitmap表現為全0:
*** 2006-04-11 12:10:59.793
Start dump data blocks tsn: 10 file#: 5 minblk 3 maxblk 3
……
File Space Bitmap Block:
BitMap Control:
RelFno: 5, BeginBlock: 9, Flag: 0, First: 0, Free: 63488
0000000000000000 0000000000000000 0000000000000000 0000000000000000
……
0000000000000000 0000000000000000 0000000000000000 0000000000000000
End dump data blocks tsn: 10 file#: 5 minblk 3 maxblk 3
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/37724/viewspace-152530/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle本地管理的表空間Oracle
- 將字典管理表空間轉換為本地管理表空間
- 遷移SYSTEM表空間為本地管理表空間
- Oracle 本地表空間管理與字典表空間管理Oracle
- 測試表的空間壓縮與表空間的關係
- Oracle的邏輯結構(表空間、段、區間、塊)——表空間Oracle
- 本地表空間管理優點vs資料字典表空間管理(轉載)
- [zt] 如何將資料字典管理表空間(DMT)轉化為本地管理表空間(LMT)
- 邏輯表空間管理結構(Logical Storage Structures)Struct
- Oracle表空間的管理方式(LMT、DMT)--本地和字典管理Oracle
- Oracle的UNDO表空間管理總結Oracle
- innodb表空間儲存結構
- Oracle可傳輸表空間測試Oracle
- 管理表空間(表空間的屬性)轉貼
- Oracle 表空間的管理Oracle
- Oracle的表空間管理Oracle
- 【TABLESPACE】Oracle 表空間結構說明Oracle
- Oracle基礎結構之表空間Oracle
- oracle 10g 傳輸表空間的測試Oracle 10g
- Oracle表空間管理Oracle
- Oracle 表空間管理Oracle
- ASM表空間管理ASM
- 表空間管理之bigfile表空間設定
- oracle expdp、impdp匯入從原表空間更換到其他表空間 ----匯入到另個表空間測試Oracle
- 達夢表空間管理注意事項總結
- Oracle undo 表空間管理Oracle
- oracle undo表空間管理Oracle
- 表空間的資料字典管理
- oracle 表空間的管理方式Oracle
- 表空間碎片檢測
- 表空間重新命名相關命令與測試
- undo表空間總結
- 測試移動blob型別的資料到新的表空間型別
- Oracle OCP(49):表空間管理Oracle
- 【儲存管理】表空間概念
- 表空間查詢和管理
- oracle表空間日常操作管理Oracle
- oracle表空間管理維護Oracle