`
liqi6510
  • 浏览: 39348 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle数据行的rowid分析

阅读更多
在oracle8i后,rowid的格式为:OOOOOOOFFFBBBBBBRRR,其中O代表Object_id,F代表file_id,B代表块的id,R代表行的id号。
以创建test表为例,来介绍。
1、test表在数据库称为一个对象,可以查询其对象ID:
select object_id from dba_objects where object_name='TEST' and owner='U1';
2、每个数据行,Oracle都为其分配了一个rowid,这个rowid表示行的物理地址。它并不存在于数据块中,而存在于索引中。查看第一行的rowid值:
select rowid from test where rownum=1;
结果:AAAMttAAEAAAABUAAA(64位进制计算)
则:object_id=AAAMtt,file_id=AAE,block_id=AAAABU,row_id=AAA
3、通过oracle的dbms_rowid可以计算这些值:
select dbms_rowid.rowid_object('AAAMttAAEAAAABUAAA') object_id#, dbms_rowid.rowid_relative_fno('AAAMttAAEAAAABUAAA') file#,dbms_rowid.rowid_block_number('AAAMttAAEAAAABUAAA') block#, dbms_rowid.rowid_row_number('AAAMttAAEAAAABUAAA') row# from dual;

结果:
OBJECT_ID# FILE# BLOCK# ROW#

52077 4 84 0
4、可以查询该书库块在哪个数据文件中:
select file#,rfile#,name from v$datafile;
分享到:
评论

相关推荐

    Oracle中用Rowid查找和删除表中的重复记录

    Rowid是Oracle数据库中用于唯一标识表中每一行的一个特殊的数据类型。每个Rowid对应着一个特定的物理存储位置,它能够快速定位到表中的某一行数据。Rowid具有以下特点: 1. **唯一性**:对于表中的每一行数据,其...

    oracle error invalid rowid

    在Oracle数据库系统中,"invalid rowid"错误通常表示尝试访问的数据行的引用已经失效或者不存在。RowID是Oracle数据库中用于唯一标识表中每一行的一个物理地址,它由数据库内部生成并存储在数据块中。当遇到"invalid...

    Oracle中的rowid

    总的来说,理解ROWID对于优化Oracle数据库的操作至关重要,无论是进行快速的数据访问还是分析数据存储结构。掌握ROWID的使用和解析,有助于提升数据库管理效率,并对索引的工作原理有更深入的认识。通过ROWID,...

    oracle_SQL中ROWID与ROWNUM的使用

    - 使用 `ROWID` 可以非常快速地定位到具体的一行数据。 #### 使用 ROWID 查询数据 假设我们要查询 `student` 表中 `ID` 为 `'200002'` 的学生的 `ROWID`: ```sql SELECT ROWID FROM student WHERE ID = '200002'...

    Oracle表删除大量数据(千万)后查询变慢问题(原因分析)

    Oracle 表删除大量数据后查询变慢问题分析 在 Oracle 数据库中,如果删除了大量数据(千万级别),可能会出现查询变慢的问题。下面我们将分析这个问题的原因,并提供解决方案。 问题的原因主要有两个方面: 1. 表...

    基于Oracle的大数据量删除操作性能分析.pdf

    本文聚焦于在Oracle数据库环境下,如何有效地执行大数据量删除操作,旨在分析性能问题,并提出相应的解决方案。 文章开篇即提出问题:在处理大量数据时,如何更高效地执行删除操作,同时尽量降低对业务运行的影响。...

    浅析Rowid在Oracle数据库中的应用.pdf

    在Oracle中,Rowid扮演着关键角色,它是一种伪列,用于唯一标识数据库中的每一行记录。Rowid包含了记录的物理存储位置信息,使得数据库能够快速定位和访问数据。 Rowid分为不同类型:Foreign Rowid、Logical Rowid...

    Oracle执行计划分析

    一旦一行数据插入到数据库中,该行的Rowid在整个生命周期内保持唯一,即使行发生迁移也不会改变Rowid的值。 ##### 2.2 Recursive SQL Recursive SQL是指为了执行用户的某个SQL语句而隐式执行的额外SQL语句。例如,...

    探讨Oracle数据缓冲区内部机制

    Oracle 提供了一个内部视图X$BH,用于分析数据缓冲池的性能。通过该视图,我们可以获取每个数据块的使用计数(Tch)和两次使用之间的时间差(Tim),从而识别出频繁访问的“热数据块”。通过查询X$BH,我们可以找到...

    Oracle 行迁移与行链接的实验详解

    在Oracle数据库管理过程中,行迁移(row migration)与行链接(row chaining)是两种常见的现象,它们通常发生在记录过大或更新操作导致记录扩展超出单个数据块所能容纳范围的情况下。这两种现象不仅影响了数据的物理...

    ORACLE 数据对象的分析2(索引_序列_同义词)

    ### Oracle 数据对象的分析2(索引_序列_同义词) #### 一、索引(INDEX) **索引**是提高数据访问效率的关键技术之一,在Oracle数据库中扮演着极其重要的角色。它允许用户更快地查找和检索数据,从而极大地提高了...

    oracle中如何删除重复数据

    在Oracle数据库中,删除重复数据是一项常见的数据清洗任务,尤其当表设计不当时,重复数据可能导致数据不一致和分析错误。以下将详细解释如何在Oracle中处理这两种类型的重复数据问题:部分字段重复和完全重复记录。...

    oracle数据快照

    ### Oracle 数据快照详解 #### 一、Oracle 数据快照概念与作用 在数据库管理领域,Oracle 数据快照(Snapshot)是一种重要的数据复制技术。它主要用于实现数据的备份与恢复,以及支持各种数据分析任务。快照可以...

    ORACLE_高效SQL分析

    - **基于ROWID的读取**:通过ROWID快速定位到具体的数据行。 - **索引扫描(Index Scan)**:通过索引来访问数据,可以显著提高查询速度。 #### 七、表连接实现方式 Oracle支持三种主要的表连接方法: - **嵌套循环...

    Oracle和DB2的数据类型比较

    本文旨在对比Oracle和DB2/400数据库管理系统中的数据类型,并重点分析日期和时间类型的差异。由于Oracle和DB2/400在数据类型的定义和实现上存在差异,因此在进行数据库迁移或跨平台开发时,了解这些差异至关重要。 ...

    Oracle各种数据类型的介绍,适合中高级编程开发人员

    本文将详细介绍Oracle中的几种常见数据类型,并针对每种类型的特点进行分析,旨在帮助中高级编程开发人员以及初学者更好地理解和使用Oracle数据类型。 #### Character 类型 - **CHAR**: 是一种固定长度的字符类型...

    oracle数据访问

    本篇将详细介绍Oracle数据访问的不同方式、索引的作用以及多表连接的处理方法。 首先,表的访问方式主要有以下几种: 1. **全表扫描(Full Table Scan, FTS)**:当Oracle执行查询时,如果选择全表扫描,它会按...

    oracle删除重复记录性能分析

    ### Oracle删除重复记录性能分析 #### 一、背景与需求 在数据库管理中,经常会遇到数据清理的需求,尤其是在Oracle数据库中处理重复记录时。本文旨在通过对比几种不同的方法来删除Oracle中的重复记录,并分析其...

    oracle删除重复数据的几种方法

    这种方法的优点是简单易行,缺点是也只适合删除少量重复数据。 方法三:创建临时表 创建临时表是一种适合删除大量重复数据的方法。这种方法可以将重复数据删除,并将剩余数据插入到临时表中。 示例代码: ``` ...

Global site tag (gtag.js) - Google Analytics