oracle rowid 研究
SQL> create table tab01(id integer,val varchar(4));
Table created.
SQL> insert into tab01 values(1,'0001');
1 row created.
SQL> insert into tab01 values(2,'0002');
1 row created.
SQL> insert into tab01 values(3,'0003');
1 row created.
SQL> insert into tab01 values(4,'0004');
1 row created.
SQL> select rowid, tab01.* from tab01;
ROWID ID VAL
------------------ ---------- ----
AAAVVLAAEAAAACvAAA 1 0001
AAAVVLAAEAAAACvAAB 2 0002
AAAVVLAAEAAAACvAAC 3 0003
AAAVVLAAEAAAACvAAD 4 0004
SQL>
******************************************************
[oracle@localhost ~]$ cat test.sql
select dbms_rowid.rowid_object(rowid) object_id,
dbms_rowid.rowid_relative_fno(rowid) file_id,
dbms_rowid.rowid_block_number(rowid) block_id,
dbms_rowid.rowid_row_number(rowid) num ,id,val from tab01;
[oracle@localhost ~]$
SQL> @test.sql;
OBJECT_ID FILE_ID BLOCK_ID NUM ID VAL
---------- ---------- ---------- ---------- ---------- ----
87371 4 175 0 1 0001
87371 4 175 1 2 0002
87371 4 175 2 3 0003
87371 4 175 3 4 0004
SQL>
[oracle@localhost ~]$ cat test02.sql
select rowid,
substr(rowid,1,6) "object",
substr(rowid,7,3) "file",
substr(rowid,10,6) "block",
substr(rowid,16,3) "row",
id,val from tab01;
[oracle@localhost ~]$
SQL> @test02.sql;
ROWID object fil block row ID VAL
------------------ ------ --- ------ --- ---------- ----
AAAVVLAAEAAAACvAAA AAAVVL AAE AAAACv AAA 1 0001
AAAVVLAAEAAAACvAAB AAAVVL AAE AAAACv AAB 2 0002
AAAVVLAAEAAAACvAAC AAAVVL AAE AAAACv AAC 3 0003
AAAVVLAAEAAAACvAAD AAAVVL AAE AAAACv AAD 4 0004
SQL>
******************************************************
如果,把数据库进行冷备份,然后恢复会如何?
SQL> @test02.sql;
ROWID object fil block row ID VAL
------------------ ------ --- ------ --- ---------- ----
AAAVVLAAEAAAACvAAA AAAVVL AAE AAAACv AAA 1 0001
AAAVVLAAEAAAACvAAB AAAVVL AAE AAAACv AAB 2 0002
AAAVVLAAEAAAACvAAC AAAVVL AAE AAAACv AAC 3 0003
AAAVVLAAEAAAACvAAD AAAVVL AAE AAAACv AAD 4 0004
SQL>
SQL> @test.sql;
OBJECT_ID FILE_ID BLOCK_ID NUM ID VAL
---------- ---------- ---------- ---------- ---------- ----
87371 4 175 0 1 0001
87371 4 175 1 2 0002
87371 4 175 2 3 0003
87371 4 175 3 4 0004
SQL>
完全没有变化。
现在重新作表,看导出导入到其他机器上状况会如何:
[oracle@o_target ~]$ sqlplus gao/gao
SQL*Plus: Release 11.2.0.1.0 Production on Fri Apr 4 09:42:57 2014
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> create table gaotab(id integer,val varchar(3));
Table created.
SQL> insert into gaotab values(4,'004');
1 row created.
SQL> insert into gaotab values(1,'001');
1 row created.
SQL> insert into gaotab values(3,'003');
1 row created.
SQL> insert into gaotab values(2,'002');
1 row created.
SQL> commit;
Commit complete.
SQL>
oracle rowid 研究的更多相关文章
- oracle rowid 详解
oracle rowid详解 今天是2013-09-15,存储在数据库中的每一行数据都有一个地址,oracle使用rowid数据类型在存储地址.rowid有如下类别: 1)physical rowid ...
- KingbaseES CTID 与 Oracle ROWID
熟悉oracle的人都知道ROWID可用于快速的数据访问,KingbaseES 由于自身MVCC机制的原因,ctid 作为 oracle rowid 的替代方案不合适,但currtid 还是基本可以满 ...
- ORACLE rowid,file# 和 rfile#
rowid简介 rowid就是唯一标志记录物理位置的一个id,在oracle 8版本以前,rowid由file#+block#+row#组成,占用6个bytes的空间,10 bit 的 file# , ...
- Oracle rowid
本文讨论的是关于oracle从8i开始引进object的概念后的rowid,即扩展(extended)的rowid:1.rowid的介绍先对rowid有个感官认识:SQL> select ROW ...
- oracle rowid 使用
ROWID是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置. ROWID可以分为物理rowid和逻辑rowid两种.普通的堆表中的rowid是物理rowid,索引组织表 ...
- Oracle ROWID具体解释
1.ROWID定义 ROWID:数据库中行的全局唯一地址 对于数据中的每一行,rowid伪列返回行的地址.rowid值主要包括下面信息: 对象的数据对象编号 该行所在的数据文件里的数据块 该行中数据块 ...
- 转载:oracle 启动过程--oracle深入研究
Oracle数据库的启动-nomount状态深入解析 通常所说的Oracle Server主要由两个部分组成:Instance和Database.Instance是指一组后台进程(在Windows上是 ...
- ORACLE rowid切分大表
通过如下sql获取rowid切分范围 ) || dbms_rowid.rowid_create(, DOI, lo_fno, lo_block, ) ) || ) || dbms_rowid.rowi ...
- Oracle进阶研究问题收集
1. buffer busy waits http://www.itpub.net/thread-1801066-1-4.html 2. 深入理解oracle log buffer http://ww ...
随机推荐
- Selenium clear()方法无法清掉数据
问题描述 clear()方法执行过后, 数据还是在. 根本原因 存在镜像节点. 操作clear()清掉数据后, 镜像节点的数据还在, 就会再补充回去. 解决办法 添加下面代码就可以连同镜像的数据一起去 ...
- webpack+express多页站点开发
学习了webpack门级的教程后,觉得可能是专门为单页应用而量身打造的,比如webpack+react.webpack+vue等,都可以解决各种资源的依赖加载.打包的问题.甚至css都是打包在js里去 ...
- Java——并发编程
1.在java中守护线程和本地线程区别? java中的线程分为两种:守护线程(Daemon)和用户线程(User). 任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon( ...
- cxfreeze打包python程序的方法说明(生成安装包,实现桌面快捷方式、删除快捷方式)
一.cxfreeze基础 1.cxfreeze功能 python代码文件转exe方法有三种,分别是cx_freeze,py2exe,PyInstaller,这三种方式各有千秋,本人只用过py2exe和 ...
- 配置nginx官网yum源
由于yum源中没有我们想要的nginx,那么我们就需要创建一个“/etc/yum.repos.d/nginx.repo”的文件,其实就是新增一个yum源 二.添加nginx.repo 文件: [roo ...
- zabbix日常监控NFS(新加一)
有时候主机使用NFS文件挂载的方式来存储.备份.共享文件:但有时会出现断开的现象. 1.客户机现状 [root@tianxia6 ~]# df -h Filesystem Size Used Avai ...
- Hadoop HBase概念学习系列之HBase里的存储数据流程(二十三)
这个,很简单,但凡是略懂大数据的,就很清楚,不多说,直接上图.
- npm install --save 和 --save-dev的区别
--save 会把依赖包名称添加到 package.json 文件 "dependencies" 键下--save-dev 则添加到 package.json 文件 "d ...
- exits, in, left join性能比较
exits in left join性能比较 ,笔者使用的是MYSQL数据库,这三个关键字方法在其他的关系数据库里也是大同小异,如果各种有兴趣,自行比较. 我这里有一个249_account 表,总 ...
- 标绘ol3版开源啦
地址:git.oschina.net/ilocation/plot By 平凡的世界 plot4ol3 说明 基于OpenLayers3实现动态标绘API. 在线体验 :7xr2vb.com1.z0. ...