日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

oracle 10g中的ROWID

 iversion 2009-05-08
oracle 10g中的ROWID
2009年04月20日 星期一 14:56

 

1 ROWID的特性

1rowid是一個偽列,是用來確保表中行的唯一性,它并不能指示出行的物理位置,但可以用來定位行。

2rowid是存儲在索引中的一組既定的值(當(dāng)行確定后)。我們可以像表中普通的列一樣將它選出來。
3)利用rowid是訪問表中一行的最快方式。

4rowid需要10個字節(jié)來存儲,顯示為18位的字符串。

2 ROWID的結(jié)構(gòu)

rowid的組成結(jié)構(gòu)為:

data object number(6位字符串) relative file number(3位字符串) block number(6位字符串) row number(3位字符串),如:AAAADeAABAAAAZSAAA

64編碼的物理地址,編碼字符是A-Z, a-z, 0-9, +,and/.

      由4部分組成OOOOOOFFFBBBBBBRRR (obj#file#block#row#)

      OOOOOO -–data object number

      FFF –-表空間相對的數(shù)據(jù)文件號

      BBBBBB –-塊號

      RRR ---行號

我們可以借助oracle提供的包dbms_rowid,來對rowid進(jìn)行解析從而獲取關(guān)于行的相關(guān)信息,這里你可以選擇任何一個數(shù)據(jù)庫中的表,如下所示:

SQL> get c:\rowid.sql
1 select
2 rowid,
3 dbms_rowid.rowid_object(rowid) obj_id,
4 dbms_rowid.rowid_relative_fno(rowid) df#,
5 dbms_rowid.rowid_block_number(rowid) blknum,
6 dbms_rowid.rowid_row_number(rowid) rowno
7* from scott.emp
SQL> r
1 select
2 rowid,
3 dbms_rowid.rowid_object(rowid) obj_id,
4 dbms_rowid.rowid_relative_fno(rowid) df#,
5 dbms_rowid.rowid_block_number(rowid) blknum,
6 dbms_rowid.rowid_row_number(rowid) rowno
7* from scott.emp

ROWID                  OBJ_ID        DF#     BLKNUM      ROWNO
------------------ ---------- ---------- ---------- ----------
AAAL+ZAAEAAAAAdAAA      49049          4         29          0
AAAL+ZAAEAAAAAdAAB      49049          4         29          1
AAAL+ZAAEAAAAAdAAC      49049          4         29          2
AAAL+ZAAEAAAAAdAAD      49049          4         29          3
AAAL+ZAAEAAAAAdAAE      49049          4         29          4
AAAL+ZAAEAAAAAdAAF      49049          4         29          5
AAAL+ZAAEAAAAAdAAG      49049          4         29          6
AAAL+ZAAEAAAAAdAAH      49049          4         29          7
AAAL+ZAAEAAAAAdAAI      49049          4         29          8
AAAL+ZAAEAAAAAdAAJ      49049          4         29          9
AAAL+ZAAEAAAAAdAAK      49049          4         29         10
AAAL+ZAAEAAAAAdAAL      49049          4         29         11
AAAL+ZAAEAAAAAdAAM      49049          4         29         12
AAAL+ZAAEAAAAAdAAN      49049          4         29         13

14 rows selected.

當(dāng)如下情況發(fā)生時,rowid將發(fā)生改變:

1)對一個表做表空間的移動后

2)對一個表進(jìn)行了EXP/IMP

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多