dba_segments表中的header_block
SYS>select segment_name,header_file,header_block from dba_segments where segment_name='TEST' and owner='TIM';
SEGMENT_NAME HEADER_FILE HEADER_BLOCK
------------------------------ ---------------- -----------------
TEST 4 579
dba_extents表中的block_id
SYS>select segment_name,file_id,block_id from dba_extents where segment_name='TEST' and owner='TIM';
SEGMENT_NAME FILE_ID BLOCK_ID
------------------------------ ---------- ----------
TEST 4 577
TEST 4 585
TEST 4 593
TEST 4 601
从上面可以看出header_block并不是segment的第一个block
一个segment会有多个extent
一个segment在dba_segments中只有1条记录,只有一个header_block,这是存储segment header信息的那个block
一个segment在dba_extents中可能会有多条记录,每个block_id都是这个extent的起始block id。
一个ASSM的segment最初的那个extent中,block_id标示的block(也就是第一个extent的第一个block)是FIRST
LEVEL BITMAP BLOCK,第二个block是SECOND LEVEL BITMAP BLOCK,这两个block用于管理free
block,取代freelist的功能,而第三个block才是PAGETABLE SEGMENT
HEADER(这才是header_block字段表示的block)。
那第一条记录是从那个块开始的呢?我们可以用下列命令来查看:
TIM>select dbms_rowid.ROWID_BLOCK_NUMBER(rowid) block_id,count(*) from test group by dbms_rowid.ROWID_BLOCK_NUMBER(rowid) order by dbms_rowid.ROWID_BLOCK_NUMBER
(rowid);
BLOCK_ID COUNT(*)
---------- ----------
580 4
581 322
582 323
583 322
584 322
585 322
586 322
587 322
588 322
589 322
590 322
可以看出第一条记录从580块开始。
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10685580/viewspace-1047165/ ,如需转载,请注明出处,否则将追究法律责任。