DBA- data block address

来源:互联网 发布:网络温控器 编辑:程序博客网 时间:2024/05/16 11:08

随手记录一下:

http://www.orafaq.com/wiki/Data_block_address

Data block address

From Oracle FAQ

A Data Block Address (DBA) is the address of an Oracle data block for access purposes.

Find the DBA for a given row

Start by getting the file and block number of the row. Example:

SQL> SELECT  2    dbms_rowid.rowid_relative_fno(rowid) REL_FNO,  3    dbms_rowid.rowid_block_number(rowid) BLOCKNO,  4    empno, ename  5  FROM emp WHERE empno = 7369;   REL_FNO    BLOCKNO      EMPNO ENAME---------- ---------- ---------- ----------         4         20       7369 SMITH

Now, convert the file and block numbers to a DBA address:

SQL> variable dba varchar2(30)SQL> exec :dba := dbms_utility.make_data_block_address(4, 20);PL/SQL procedure successfully completed.SQL> print dbaDBA--------------------------------16777236

Convert a DBA back to file and block numbers

Example:

SQL> SELECT dbms_utility.data_block_address_block(16777236) "BLOCK",  2         dbms_utility.data_block_address_file(16777236) "FILE"  3    FROM dual;     BLOCK       FILE---------- ----------        20          4
原创粉丝点击