欢迎投稿

今日深度:

【11g体系结构,5】rowid,11g体系结构rowid

【11g体系结构,5】rowid,11g体系结构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








网上很多人说oracle 11g在处理大数据分页时用rowid比rownum效率快很多,rowid与rownum分页效率原理

rownum和rowid是两种不同的东西,不知道你如何利用rowid来分页?
rownum是返回的记录编号。rowid可理解为返回记录的实际地址。
当根据rowid访问时相当于不经查询直接取数,用rownum必须经过查询(即数据库里有查询动作)。如果已经知道了rowid再去获取数据和通过rownum计数去获取数据,肯定用rowid快。
实际上,由于oracle不支持的真正的分页查询,所谓分页,是先把数据从数据库中查询出来,然后再把对应页的数据返回给调用者,剩余的数据扔掉了。所以,这种情况下,注定用rowid不如用rownum快。
 


www.htsjk.Com true http://www.htsjk.com/shujukunews/3137.html NewsArticle 【11g体系结构,5】rowid,11g体系结构rowid 一.rowid 扩展的rowid 使用以64为基数的编码方案来显示。 rowid简单理解为数据的身份证号,总共18位,6位对象号,3为文件号,6位块号,3位行号。...
评论暂时关闭