object_id与data_object_id的关系

object_id 是逻辑对象ID

data_object_id 是物理对象ID

SQL> create table test as select rownum rn from dba_objects;

Table created.

SQL> select object_id,data_object_id from dba_objects where object_name='TEST' A
ND WNER='SYS';

 OBJECT_ID DATA_OBJECT_ID
---------- --------------
      6680           6680

SQL> select header_file,header_block,blocks from dba_segments where segment_name
='TEST' and WNER='SYS';

HEADER_FILE HEADER_BLOCK     BLOCKS
----------- ------------ ----------
          1        42921         16

SQL> alter table test move;

Table altered.

SQL> select object_id,data_object_id from dba_objects where object_name='TEST' A
ND WNER='SYS';

 OBJECT_ID DATA_OBJECT_ID
---------- --------------
      6680           6681

表经过move后,物理ID发生变化

SQL> select header_file,header_block,blocks from dba_segments where segment_name
='TEST' and WNER='SYS';

HEADER_FILE HEADER_BLOCK     BLOCKS
----------- ------------ ----------
          1        43105         16

SQL> truncate table test;

Table truncated.

SQL> select header_file,header_block,blocks from dba_segments where segment_name
='TEST' and WNER='SYS';

HEADER_FILE HEADER_BLOCK     BLOCKS
----------- ------------ ----------
          1        43105          8

SQL> select object_id,data_object_id from dba_objects where object_name='TEST' A
ND WNER='SYS';

 OBJECT_ID DATA_OBJECT_ID
---------- --------------
      6680           6682

表经过truncate 后 物理ID也发生变化

 

SQL> alter table test add(n number);

Table altered.

SQL> select object_id,data_object_id from dba_objects where object_name='TEST' A
ND WNER='SYS';

 OBJECT_ID DATA_OBJECT_ID
---------- --------------
      6680           6682

给表增加一个列,也没发生变化

所以总上所简述

只有当segment发生变化时data_object_id才发生变化

有时候我们根据rowid 算时得到的data_object_id会误以为就是object_id,因为要是没有发生segment变化时

两者值是相等的

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7199859/viewspace-112262/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7199859/viewspace-112262/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值