?
??ROWID 是一個類似于rownum的偽列,用于定位數據庫中一條記錄的一個相對唯一地址值。通常情況下,該值在該行數據插入到數據庫表時即
被確定且唯一。而對于聚簇表,由于聚簇特性,不同表上的記錄由于存儲在相同的簇上,因此會擁有相同的ROWID。數據庫的大多數操作都是通
過ROWID來完成的,而且使用ROWID來進行單記錄定位速度是最快的。下面將給出ROWID的相關描述。
?
一、ROWID的特性組成及用途
??
1、特性
????? 相對唯一性(聚簇表上不唯一)
????? 一旦確定,不可隨意更改
????? 使用10個字節存儲(擴展rowid),顯示為18位的字符串
????? 特殊情況下,ROWID會發生變化(如下列情形)
???????? 表的導入導出操作
???????? alter table tab_name move
???????? alter table tab_name shrink space
???????? flashback table tab_name
???????? 拆分分區表
???????? 分區表上更新一個值后記錄被移入到新分區
???????? 合并兩個分區
??
2、組成(擴展ROWID)
???? ?數據庫對象的對象編號
???? ?數據庫對象所在文件的文件編號
???? ?數據庫對象上塊的編號
???? ?塊上的行編號(起始值為0)
??
3、用途
???? ?快速定位單行記錄
??? ??展示行在表上如何存儲
??? ??表上的一行的唯一標識符??
??? ??用作數據類型 column_name rowid
??
4、限制rowid,擴展rowid
???? ?限制rowid用于早期Oracle版本(Oracle 8 以前),rowid由file#+block#+row#組成,占用6個bytes的空間
???? ?擴展rowid,由data_object_id#+rfile#+block#+row#組成,占用10個bytes的空間
??
二、ROWID的格式??
????
三、查看ROWID信息及相關演示
??
1、查看堆表上rowid及獲取rowid信息
????
?? 2、查看簇表上的rowid 有關簇表請參考: 簇表及簇表管理(Index clustered tables) ????
?? 3、使用rowid訪問數據的情形 ???
?? 4、使用rowid數據類型 ???????
?? 5、rowid變化的情形 ????
???????????????????????????????????
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
