ROWID 是一个类似于rownum的伪列,用于定位数据库中一条记录的一个相对唯一地址值。通常情况下,该值在该行数据插入到数据库表时即
      
       被确定且唯一。而对于聚簇表,由于聚簇特性,不同表上的记录由于存储在相同的簇上,因此会拥有相同的ROWID。数据库的大多数操作都是通
      
       过ROWID来完成的,而且使用ROWID来进行单记录定位速度是最快的。下面将给出ROWID的相关描述。
    
  
    
      
        
          一、ROWID的特性组成及用途
          
        
      
        
      
        1、特性
        
      
            相对唯一性(聚簇表上不唯一)
      
             一旦确定,不可随意更改
      
             使用10个字节存储(扩展rowid),显示为18位的字符串
      
             特殊情况下,ROWID会发生变化(如下列情形)
      
                表的导入导出操作
      
                alter table tab_name move
      
                alter table tab_name shrink space
      
                flashback table tab_name
      
                拆分分区表
      
                分区表上更新一个值后记录被移入到新分区
      
                合并两个分区
      
         
      
        2、组成(扩展ROWID)
        
      
            数据库对象的对象编号
      
             数据库对象所在文件的文件编号
      
             数据库对象上块的编号
      
             块上的行编号(起始值为0)
      
         
      
        3、用途
        
      
            快速定位单行记录
      
             展示行在表上如何存储
      
             表上的一行的唯一标识符  
      
             用作数据类型 column_name rowid
      
         
      
        4、限制rowid,扩展rowid
        
      
            限制rowid用于早期Oracle版本(Oracle 8 以前),rowid由file#+block#+row#组成,占用6个bytes的空间
      
             扩展rowid,由data_object_id#+rfile#+block#+row#组成,占用10个bytes的空间
      
         
      
      
        
          二、ROWID的格式  
        
      
          
    
  
    
      
        
          三、查看ROWID信息及相关演示
          
        
      
        
      
        1、查看堆表上rowid及获取rowid信息
      
          
    
  
2、查看簇表上的rowid 有关簇表请参考: 簇表及簇表管理(Index clustered tables)
3、使用rowid访问数据的情形
4、使用rowid数据类型
5、rowid变化的情形
    
    
                                         
  

