【Oracle】DBMS_ROWID定位数据行物理存储位置
来源:互联网 发布:使命召唤5知乎 编辑:程序博客网 时间:2024/05/17 07:08
对于oracle中的堆表,我们可以通过oracle内置的ROWID伪列得到对应行记录所在的ROWID的值(注意,这个ROWID只是一个伪列,实际的块中并不存在该列)。然后我们可以通过DBMS_ROWID包中的相关方法来通过ROWID伪列来定位对应数据行的实际物理存储物理地址。
dbms_rowid.rowid_relative_fno:定位该数据行所在的数据文件
dbms_rowid.rowid_block_number:定位该数据行在数据文件的第多少个块
dbms_rowid.rowid_row_number:定位该数据行在数据块的第多少行
下面举例进行查看:
SCOTT@ORCL>desc emp
Name Null? Type
----------------------------------------- -------- ----------------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
SCOTT@ORCL>col location for a20
SCOTT@ORCL>select empno,rowid,dbms_rowid.rowid_relative_fno(rowid) || '_' ||dbms_rowid.rowid_block_number(rowid) || '_' || dbms_rowid.rowid_row_number(rowid) location
2 from emp;
EMPNO ROWID LOCATION
---------- ------------------ --------------------
7369 AAAMfMAAEAAAAAgAAA 4_32_0
7499 AAAMfMAAEAAAAAgAAB 4_32_1
7521 AAAMfMAAEAAAAAgAAC 4_32_2
7566 AAAMfMAAEAAAAAgAAD 4_32_3
7654 AAAMfMAAEAAAAAgAAE 4_32_4
7698 AAAMfMAAEAAAAAgAAF 4_32_5
7782 AAAMfMAAEAAAAAgAAG 4_32_6
7788 AAAMfMAAEAAAAAgAAH 4_32_7
7839 AAAMfMAAEAAAAAgAAI 4_32_8
7844 AAAMfMAAEAAAAAgAAJ 4_32_9
7876 AAAMfMAAEAAAAAgAAK 4_32_10
EMPNO ROWID LOCATION
---------- ------------------ --------------------
7900 AAAMfMAAEAAAAAgAAL 4_32_11
7902 AAAMfMAAEAAAAAgAAM 4_32_12
7934 AAAMfMAAEAAAAAgAAN 4_32_13
14 rows selected.
拿第一行数据进行说明该行的ROWID伪列的值为 AAAMfMAAEAAAAAgAAA,可以通过ROWID包通过这个ROWID伪列转换出来的值为4_32_0,代表该行在数据文件4的第32个数据块的第0行。
- 【Oracle】DBMS_ROWID定位数据行物理存储位置
- DBMS_ROWID定位数据行物理存储位置
- [Oracle]使用DBMS_ROWID定位数据块的物理位置
- ORACLE物理文件存储位置查询语句
- ORACLE 数据存储结构之物理存储结构
- ORACLE DBMS_ROWID 包概述
- oracle物理存储结构
- Oracle物理存储结构
- oracle物理存储结构
- dbms_rowid
- DBMS_ROWID
- dbms_rowid
- ceph 查看osd 物理存储位置
- Oracle的物理存储结构
- Oracle的物理存储结构
- oracle的物理存储结构
- 导航电子地图数据物理存储
- HBase数据的物理存储
- Linux Input子系统第二篇之A/B(Slot)协议
- 什么是BIOS?如何进入BIOS设置(含各种品牌电脑)
- 无法解析或打开软件包的列表或是状态文件解决方案
- CentOS下安装中文输入法
- nginx缓存设置
- 【Oracle】DBMS_ROWID定位数据行物理存储位置
- MongoDB随笔3:使用索引
- 3--2旱冰场造价
- VC6.0使用Sqlite3 历程
- 基本数据结构 -- 希尔排序
- Leetcode--Combination Sum
- iOS项目的目录结构和开发流程
- 多线程编程2 - NSOperation
- ubuntu系统备份