WEB开发网
开发学院数据库Oracle Oracle中行迁移和行链接的清除及检测 阅读

Oracle中行迁移和行链接的清除及检测

 2007-05-06 12:05:55 来源:WEB开发网   
核心提示: ◆Fb:H是指行记录的头,L是指行记录的最后一列,Oracle中行迁移和行链接的清除及检测(4),F是指行记录的第一列,◆Cc:列的数量,然后更新test表,并重新dump出来:SQL> update test set a='test',b='test'

◆Fb:H是指行记录的头,L是指行记录的最后一列,F是指行记录的第一列。

◆Cc:列的数量。

◆Nrid:对于行链接或者行迁移来说的下一个row id的值。

由上面的dump信息我们可以看出来当前表test是没有行链接或者行迁移的。

然后更新test表,并重新dump出来:

SQL> update test set a='test',b='test',c='test',d='test',e='test' where x=1;
1 row updated.
SQL> commit;
Commit complete.

此时应该有行迁移和行链接产生了。

SQL> alter system dump datafile 23 block 34;
System altered.

在udump目录下查看trace文件的内容如下:

Start dump data blocks tsn: 34 file#: 23 minblk 34 maxblk 34
buffer tsn: 34 rdba: 0x05c00022 (23/34)
scn: 0x0000.0139442b seq: 0x01 flg: 0x02 tail: 0x442b0601
frmt: 0x02 chkval: 0x0000 type: 0x06=trans data
Block header dump: 0x05c00022
Object id on Block? Y
seg/obj: 0x3ccd csc: 0x00.1394429 itc: 2 flg: - typ: 1 - DATA
fsl: 0 fnx: 0x0 ver: 0x01
Itl Xid Uba Flag Lck Scn/Fsc
0x01 0x000a.02e.00000ad7 0x00800036.03de.18 C--- 0 scn 0x0000.013943f3
0x02 0x0004.002.00000ae0 0x0080003b.0441.11 --U- 1 fsc 0x0000.0139442b
data_block_dump,data header at 0xadb505c
===============
tsiz: 0x1fa0
hsiz: 0x14
pbl: 0x0adb505c
bdba: 0x05c00022
76543210
flag=
--------
ntab=1
nrow=1
frre=-1
fsbo=0x14
fseo=0x178a
avsp=0x177c
tosp=0x177c
0xe:pti[0] nrow=1 offs=0
0x12:pri[0] offs=0x178a
block_row_dump:
tab 0, row 0, @0x178a
tl: 2064 fb: --H-F--N lb: 0x2 cc: 3
nrid: 0x05c00023.0
col 0: [ 2] c1 02
col 1: [2000]
74 65 73 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
…………
col 2: [48]
74 65 73 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
end_of_block_dump
End dump data blocks tsn: 34 file#: 23 minblk 34 maxblk 34

我们不难看出,nrid出现了值,指向了下一个row id,证明刚刚的update操作使这行记录产生了行链接或者行?

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:Oracle 中行 迁移

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接