SQL> create table test_block as select * from dba_objects where
表已創建
SQL> select OWNER
SEGMENT_NAME HEADER_FILE HEADER_BLOCK BLOCKS EXTENTS
TEST_BLOCK
SQL> select EXTENT_ID
EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO
SQL> insert into test_block select * from dba_objects where rownum <
已創建
SQL> select dbms_rowid
FILE# BLOCK#
已選擇
數據插入到了第
SQL> alter system dump datafile
系統已更改
SQL> select p
TRACE_PATH
D:\oracle\admin\ora\udump\orasid_ora_
我們看看
***
Start dump data blocks tsn:
buffer tsn:
scn:
frmt:
Extent Control Header
Extent Header:: spare
last map
Highwater::
#blocks in seg
#blocks below:
mapblk
Unlocked
Map Header:: next
Extent Map
nfl =
SEG LST:: flg: USED lhd:
End dump data blocks tsn:
從 type 中
SQL> select to_number(
HIGHWATER
現在高水位是在
SQL> insert into test_block select * from dba_objects where rownum =
已創建
SQL> select dbms_rowid
BLOCK#
已選擇
SQL> rollback;
回退已完成
SQL> insert/*+ append */ into test_block select * from dba_objects where rownum =
已創建
SQL> select dbms_rowid
select dbms_rowid
*
ERROR 位於第
ORA
SQL> alter system dump datafile
系統已更改
***
*** SESSION ID:(
Start dump data blocks tsn:
buffer tsn:
scn:
frmt:
Extent Control Header
Extent Header:: spare
last map
Highwater::
#blocks in seg
#blocks below:
mapblk
Unlocked
Map Header:: next
Extent Map
nfl =
SEG LST:: flg: USED lhd:
End dump data blocks tsn:
***
Start dump data blocks tsn:
buffer tsn:
scn:
frmt:
Block header dump:
Object id on Block? Y
seg/obj:
fsl:
Itl Xid Uba Flag Lck Scn/Fsc
data_block_dump
===============
tsiz:
hsiz:
pbl:
bdba:
flag=
ntab=
nrow=
frre=
fsbo=
fseo=
avsp=
tosp=
block_row_dump:
tab
tl:
col
col
col
col
col
col
col
col
col
col
col
col
col
end_of_block_dump
End dump data blocks tsn:
SQL> commit;
提交完成
SQL> select dbms_rowid
BLOCK#
已選擇
看看此時的高水位
SQL> alter system dump datafile
系統已更改
***
Start dump data blocks tsn:
buffer tsn:
scn:
frmt:
Extent Control Header
Extent Header:: spare
last map
Highwater::
#blocks in seg
#blocks below:
mapblk
Unlocked
Map Header:: next
Extent Map
nfl =
SEG LST:: flg: USED lhd:
End dump data blocks tsn:
SQL> select to_number(
TO_NUMBER(
使用直接路徑插入時
SQL> insert into test_block select * from dba_objects where rownum =
已創建
SQL> select dbms_rowid
BLOCK#
已選擇
SQL> rollback;
回退已完成
SQL> insert/*+ append */ into test_block select * from dba_objects where rownum =
已創建
SQL> rollback;
回退已完成
SQL> alter system dump datafile
系統已更改
***
Start dump data blocks tsn:
buffer tsn:
scn:
frmt:
Extent Control Header
Extent Header:: spare
last map
Highwater::
#blocks in seg
#blocks below:
mapblk
Unlocked
Map Header:: next
Extent Map
nfl =
SEG LST:: flg: USED lhd:
End dump data blocks tsn:
高水位沒有發生變化
SQL> insert/*+ append */ into test_block select * from dba_objects where rownum =
已創建
SQL> commit;
提交完成
SQL> alter system dump datafile
系統已更改
***
Start dump data blocks tsn:
buffer tsn:
scn:
frmt:
Extent Control Header
Extent Header:: spare
last map
Highwater::
#blocks in seg
#blocks below:
mapblk
Disk Lock:: Locked by xid:
Map Header:: next
Extent Map
nfl =
SEG LST:: flg: USED lhd:
End dump data blocks tsn:
看看此時表 test_block 的數據分布
SQL> select dbms_rowid
BLOCK#
已選擇
小結
From:http://tw.wingwit.com/Article/program/Oracle/201311/18464.html