rowid

ROWID的格式
rowidOOOOOOFFFBBBBBBRRR
說明數據對象號相對文件號數據塊號行號

上述表格是Oracle 9i及以上版本數據庫中的rowid格式:

6位對象號+3位相對文件號+6位數據塊號+3位行號,是一個18位的64進制值。這個18位的64進制值在數據庫內卻是以10個bytes合計80個bit的二進制數存放的,和我們直接看到的結果有所區別。

這里的64進制和10進制的對應編碼如下:

?

其中, 6位的對象號在數據庫中是用32位二進制來存放的,也就意味著一一個oracle數據庫中最多可以有232個對象,即4G個對象; 3位的相對文件號在數據庫中是用10位二進制來存放的,也就意味著-一個表空間中最多可以容納210=1024去掉全0和全1個數據文件 ,

即1022個數據文件; 6位的數據塊號用22位二進制來存放的,也就意味著-個數據文件最多可以包含222=4M個數據塊; 3位的行號在數據庫中是用1 6位二進制來存放的,也就意味著一一個數據塊上最多可以容納21 6-65536行記錄。

?

對于大文件表空間下的rowid有如下特定的格式,這有別于小文件表空間下的rowid格式:

000000BBBBBBBBBRRR

即,6位的數據庫對象號+9位的數據塊號+3位的行號,同樣也是以18位的64進制值來表示80位的二進制數。只不過,在這里少了相對文件號,其中6位的數據庫對象號用32位的二進制數來存放(即-一個數據庫最多可以擁有232=4G個數據塊對象),9位的數據塊號同樣用32位的二進制數來存放(即一個大文件表空間可以擁有232個數據塊兒),最后3位的行號占用剩余的16位的二進制數,正好占滿80位。

?

?

大文件相對文件號為0,因為大文件的表的rowid格式中根本就不存在相對文件號的信息,最本質的原因是大文件表空間下永遠只能有且僅有1個數據文件。也就沒有相對文件號的概念了。同時,對于大文件的表空間,如果數據塊大小為32K的話,那

我們可以在查詢列表中,把rowid偽列當做普通的字段來查詢。

我們還可以通過數據庫提供給我們的工具包來獲取該信息:

SQL> select rowid,

2 dbms _rowid.rowid_ _bject(rowid) object id,3 dbms, _kowid.rowid_ relative_ fnorowid) file_ id,

4 dbms_ rowid.rowid. bock _number(rowid) block_ jd ,5 dbms_ rowidrowid_ row_ number(rowid) num ,

6 rowidtochar(rowid) from employees where employee_ jd=1007;

ROWID ?OBJECT_ID FILEI _ID BLOCK_ ID ?NUM ROWIDTOCHAR(ROWID)

AAAR5pAAF AAAADPAAA ?73321 ?5 ?207 ?: 0 AAAR5pAAFAAAADPAAA

?

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535490.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535490.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535490.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

git和gitlab安裝

1.下載git最新包 https://mirrors.edge.kernel.org/pub/software/scm/git/ 將最新包上傳至服務器/home目錄 tar -Jxvf 解壓 進入git目錄 ./configure --prefix/usr/local/git make make install 錯誤解決:Cant locate ExtUtils/MakeMaker.pm in INC yum i…

系統學習SpringFramework:循環依賴與三級緩存

本篇內容包括:Spring 中的循環依賴問題(包括 Spring 中的循環依賴問題和Spring 中的循環依賴的 5 種場景的介紹)、Spring 三級緩存介紹、4 個 Spring 無法自動解決的循環以來場景以及其對應的手動解決方式。 一、Spring 中的循環依賴問題 1、…

oracle安裝需要的包列表

redhat7.5安裝圖形界面: [rootwwyt ~]# rpm -ivh --nodeps --force xorg-x11-font* [rootwwyt ~]# mount -o loop -t iso9660 rhel-server-7.5-x86_64-dvd.iso /media/iso/ [rootwwyt ~]# cat /etc/yum.repos.d/my.repo [base] nameredhat7.5 baseurlfile:///m…

深入理解Java虛擬機:Java類的加載機制

本篇內容包括:Java 類的加載機制(Jvm 結構組成、Java 類的加載)、類的生命周期(加載-驗證-準備-解析-初始化-使用-卸載)、類加載器 以及 雙親委派模型。 一、Java 類的加載機制 1、 Jvm 結構組成 Jvm 整體組成可分為…

新版谷歌瀏覽器開啟Flash支持

瀏覽器地址欄中輸入chrome://version查看Chrome瀏覽器、Flash插件的版本信息。 Chrome 69.0-70.0版本Chrome 71.0-74.0及以后版本谷歌瀏覽器地址欄中輸入【chrome://flags/#enable-ephemeral-flash-permission】,將【Enable Ephemeral Flash Permissions】從【Defau…

深入理解Java虛擬機:Java垃圾回收機制

本篇內容包括:JAVA 垃圾回收機制概述、有哪些內存需要回收、如何回收(標記-清除、標記-整理(標記-清除-壓縮)、復制(標記-復制-清除)、分代收集等算法) 以及 何時進行垃圾回收等內容&#xff01…

深入理解Java虛擬機:Java垃圾回收器

本篇內容包括:7 種 Jvm 垃圾回收器的介紹、對比 以及 對應的 Jvm 參數設置,這 7 種包括了:Serial、ParNew 以及 Parallel Scavenge 三種新生代回收器 和 :Serial Old、Parallel Old 以及 CMS 三種老年代回收器,此外還有…

oracle跨越千年處理

如果指定的兩位年份0-4950-99 如果當前 的兩位年 份是 0-49返回的日期是當前世紀返回的日期是上個世紀50-99返回的日期是下個世紀返回的日期是當前世紀 current yearSpecified DateRR FormatYY Format199527-OCT-9519951995199527-OCT-171951917200127-OCT-1720012017200127-OC…

網絡協議:什么是網絡分層的七四五

本篇內容包括:網絡分層七層、五層、四層網絡協議概念的介紹,IOS 體系結構的介紹與構成、TCP/IP體系結構的簡介及與IOS體系的關系 以及五層體系結構的介紹。 一、七層、五層、四層網絡協議概念 1、關于網絡協議 網絡協議,即是指計算機網絡中…

查看表空間相關命令

默認表空間數據文件大小根據DATA BLOCKS的大小有關,默認最大為32GB表空間達到32G,只能增加數據文件alter tablespace 表空間名 add datafile 數據文件路徑‘ size 500m autoextend on next 100m maxsize 10000M;未達到32G,修改數據文件的擴展…

網絡協議:一文搞懂Socket套接字

本篇內容包括:Socket 套接字的簡介、Socket 套接字的分類、Java 中的 Socket 即 java.net.ServerSocket、java.net.Socket 的使用,以及Java 使用套接字 Scoket 編程的Demo。 一、Socket 簡介 TCP(傳輸控制協議)是一種面向連接的、…

RESETLOGS

使用resetlogs選項,會把當前的日志序號(log sequence number)重設為1,并拋棄所有日志信息。在以下條件時需要使用resetlogs選項: 在不完全恢復(介質恢復); 使用備份控制文件。 使…

網絡協議:透徹解析HTTP協議

本篇內容包括:HTTP 協議定義及其特點概述、關于 URL 定義及分類概述、Request 請求、Response 響應 以及 瀏覽器訪問一個網站的全過程 等內容… 一、HTTP 協議概述 HTTP(HyperText Transfer Protocol) 即 超文本傳輸協議,它是一種…

oracle參數文件和口令文件

外部 審核 口令:記錄超級用戶的用戶名和口令,做sys用戶的安全審核 oracle9以后全部使用sys登錄,但需要使用as sysdba ,之前版本需要使用internal o7字典打開 只要用戶和密碼存在于口令文件,就可以以sysdba登錄&#…

innobackup備份恢復實操步驟--gtid復制(1)(1)

首先在主庫進行備份: 備份命令: Innobackupex --defaults-file/app/dbcluster/sgrdb/mysql/my19103.cnf --no-timestamp --userdbscale --passwordS6000dbscale --host10.157.43.224 --port19103 /data/backup 如果使用setsid: setsid …

Redis系列:Redis的概述與安裝

Redis(Remote Dictionary Server) 是一個使用 C 語言編寫的,開源的(BSD許可)高性能非關系型(NoSQL)的鍵值對數據庫。 本篇內容包括:Redis 簡介(為什么快?為什么單線程?優…

安裝LibreOffice和字體

#/bin/bash # Check if user is root if [ $(id -u) ! "0" ]; thenecho "Error: You must be root to run this script, please use root"exit 1 fi echo 安裝LibreOffice cd /home/ tar -zxvf LibreOffice_6.3.3_Linux_x86-64_rpm.tar.gz cd /home/LibreO…

xtrabackup備份腳本

#!/bin/sh #備份主機 remote_ip100.0.132.160 Master_ip100.20.132.158 VIP100.20.132.166 #備份用戶 userroot #密碼 password00000 # 返回年月日 backup_datedate %F # 返回時分秒 backup_timedate %H-%M-%S # 返回今天是這周的第幾天 backup_week_daydate %u backup_ok0 #備…

Redis系列:使用Redis實現分布式鎖及相關問題

分布式鎖其實就是,控制分布式系統不同進程共同訪問共享資源的一種鎖的實現。如果不同的系統或同一個系統的不同主機之間共享了某個臨界資源,往往需要互斥來防止彼此干擾,以保證一致性。 本篇內容包括:關于 Redis 與 分布式鎖&…