rowid簡介

        大家都知道,數據是以行爲單位存儲在數據塊中的,每一行都有一個唯一的標識地址rowid,通過rowid,oracle可以快速的定位某行具體的數據的位置,那麼先來介紹下rowid:

        一、ROWID簡介:

        rowid可以分爲物理rowid和邏輯rowid兩種。普通的堆表中的rowid是物理rowid,索引組織表(IOT)的rowid是邏輯rowid。

      rowid的表現形式: 

      我們從rowid僞列裏select出來的rowid是基於base64編碼,一共有18位,分爲4部分:

      OOOOOOFFFBBBBBBRRR          6位 + 3位 + 6位 + 3位;

      例如:

                 

      其中:

                前6位(OOOOOO)表示data object id,根據object id可以確定segment;

                中間3位(FFF)表示相對文件號。根據該相對文件號可以得到絕對文件號,從而確定datafile;

            中間6位(BBBBBB)表示data block number,這裏的data block number是相對於datafile的編號,而不是相對於tablespace的編號;

            最後3爲(RRR)表示row number。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章