首页 > 代码库 > 【11g体系结构,5】rowid
【11g体系结构,5】rowid
一.rowid
扩展的rowid 使用以64为基数的编码方案来显示。
rowid简单理解为数据的身份证号,总共18位,6位对象号,3为文件号,6位块号,3位行号。
rowid前15位表示块地址,前15位相同的数据在同一个块中。
#查询EMProwid
SQL> select rowid from scott.emp;
ROWID
------------------
AAACgBAAEAAAAAdAAA
AAACgBAAEAAAAAdAAB
AAACgBAAEAAAAAdAAC
AAACgBAAEAAAAAdAAD
AAACgBAAEAAAAAdAAE
AAACgBAAEAAAAAdAAF
AAACgBAAEAAAAAdAAG
AAACgBAAEAAAAAdAAH
AAACgBAAEAAAAAdAAI
AAACgBAAEAAAAAdAAJ
AAACgBAAEAAAAAdAAK
ROWID
------------------
AAACgBAAEAAAAAdAAL
AAACgBAAEAAAAAdAAM
AAACgBAAEAAAAAdAAN
14 rows selected.
#查询对象id
SQL> select object_id,object_name,object_type from dba_objects where owner=‘SCOTT‘;
OBJECT_ID OBJECT_NAM OBJECT_TYP
---------- ---------- ----------
10239 DEPT TABLE
10240 PK_DEPT INDEX
10241 EMP TABLE
10242 PK_EMP INDEX
10243 BONUS TABLE
10244 SALGRADE TABLE
6 rows selected.
#获取对象号
SQL> select dbms_rowid.rowid_object(‘AAACgBAAEAAAAAdAAG‘) from dual;
DBMS_ROWID.ROWID_OBJECT(‘AAACGBAAEAAAAADAAG‘)
---------------------------------------------
10241
#文件号
SQL> select dbms_rowid.rowid_relative_fno(‘AAACgBAAEAAAAAdAAG‘) from dual;
DBMS_ROWID.ROWID_RELATIVE_FNO(‘AAACGBAAEAAAAADAAG‘)
---------------------------------------------------
4
#块号
SQL> select dbms_rowid.rowid_block_number(‘AAACgBAAEAAAAAdAAG‘) from dual;
DBMS_ROWID.ROWID_BLOCK_NUMBER(‘AAACGBAAEAAAAADAAG‘)
---------------------------------------------------
29
#行号,第7条记录
SQL> select dbms_rowid.rowid_row_number(‘AAACgBAAEAAAAAdAAG‘) from dual;
DBMS_ROWID.ROWID_ROW_NUMBER(‘AAACGBAAEAAAAADAAG‘)
-------------------------------------------------
6
#查询区的信息, emp表现在拥有8个块,block_id 是25~32.
SQL> col segment_name for a10
SQL> select extent_id,segment_name,bytes/1024 k,blocks,file_id,block_id from dba_extents where owner=‘SCOTT‘;
EXTENT_ID SEGMENT_NA K BLOCKS FILE_ID BLOCK_ID
---------- ---------- ---------- ---------- ---------- ----------
0 DEPT 64 8 4 9
0 EMP 64 8 4 25
0 BONUS 64 8 4 41
0 SALGRADE 64 8 4 49
0 PK_DEPT 64 8 4 17
0 PK_EMP 64 8 4 33
6 rows selected.
二.一个数据块能存放多少条数据和1g空间能存放多少条数据:
三.OFA:最优灵活体系架构
ofa:是指oracle软件和数据库文件集文件夹的命名约定和存储位置规则。
$ORACLE_BASE 为:/u01/app/oracle
$oracle_home为:/u01/app/oracle/11.2.0/db_home_1
$ORACLE_BASE/
/oradata 数据文件
/product 软件地址
/admin 放置dump 文件
$oracle_home
/dbs 初始化文件(参数文件,密码文件)
/network/admin 配置监听
四:instance_name,sid ,db_name,global_name的关系
1.sid是操作系统用来表示实例的编号,可以理解为instance的操作系统编号,所以sid和instance_name一一对应。
select instance_name from v$instance 中存储的就是sid
2.但是instance_name 和db_name是有区别的:
rac环境下db_name为racdb,但实例名可能是racdb1和dacdb2
3.global_name 就是db_name.db_domain,global_name是为了在由多个数据库组成的分布式数据库中标识数据库名称而设立的。
SQL> select * from global_name;
GLOBAL_NAME
--------------
LOSCSMAN
SQL> select instance_name from v$instance;
INSTANCE_NAME
--------------------------------
loscsmanager
SQL> show parameter db_name;
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_name string loscsman
【11g体系结构,5】rowid
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。