学习oracle技术,每天学一点,每天进步一点

object_id与data_object_id的关系

上一篇 / 下一篇  2008-01-07 15:59:54 / 个人分类:学习

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' AITPUB个人空间$p.SW@u5]N!L3IN
ND WNER='SYS';

 OBJECT_ID DATA_OBJECT_IDITPUB个人空间 mz/T(S$W
---------- --------------ITPUB个人空间.i5x @rV Gw
      6680           6680

SQL> select header_file,header_block,blocks from dba_segments where segment_name
(MJL/D7Vp O;r0='TEST' and WNER='SYS';

HEADER_FILE HEADER_BLOCK     BLOCKS
C |g@_1fDrBM)T&u0----------- ------------ ----------
#|(i4p;GK pK0          1        42921         16

SQL> alter table test move;

Table altered.

SQL> select object_id,data_object_id from dba_objects where object_name='TEST' AITPUB个人空间c"Xc3q-h~
ND WNER='SYS';

 OBJECT_ID DATA_OBJECT_ID
k(VQdBo.eH0---------- --------------ITPUB个人空间yY\5krOWoN%x
      6680           6681

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

SQL> select header_file,header_block,blocks from dba_segments where segment_nameITPUB个人空间 iJQV3\Ejzh ]5T
='TEST' and WNER='SYS';

HEADER_FILE HEADER_BLOCK     BLOCKSITPUB个人空间.W5zR)gW4kt
----------- ------------ ----------ITPUB个人空间 hc8P``&o;y{^;m
          1        43105         16

SQL> truncate table test;

Table truncated.

SQL> select header_file,header_block,blocks from dba_segments where segment_name
i?;I0aQ5j];?#V @/w)b0='TEST' and WNER='SYS';

HEADER_FILE HEADER_BLOCK     BLOCKSITPUB个人空间!I{$Q'FRjD
----------- ------------ ----------
&_s!D2^A%`;E0          1        43105          8

SQL> select object_id,data_object_id from dba_objects where object_name='TEST' A
'v,rZ.H l!`y0ND WNER='SYS';

 OBJECT_ID DATA_OBJECT_IDITPUB个人空间.L3Vo7_!z$K
---------- --------------ITPUB个人空间0kb7K7{5p6Qer
      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
ikr7W;D _Q&F\Z|0ND WNER='SYS';

 OBJECT_ID DATA_OBJECT_IDITPUB个人空间5X@3G5T H7XE*MVBy
---------- --------------
TfO[/a\0      6680           6682

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

所以总上所简述

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

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

两者值是相等的

 

 


TAG:

battleman的个人空间 引用 删除 battleman   /   2008-06-06 14:03:46
5
亦 想 天 开 引用 删除 HuiYiSky   /   2008-06-06 09:57:48
5
杂记铺 引用 删除 fjmingyang   /   2008-04-16 11:03:47
5
paul oracle my love 引用 删除 paulyibinyi   /   2008-01-08 17:27:11
tks
Friend Life for Oracle 引用 删除 oracle_ace   /   2008-01-08 15:31:59
5
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-16  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 20726
  • 日志数: 291
  • 图片数: 2
  • 建立时间: 2007-12-11
  • 更新时间: 2008-10-04

RSS订阅

Open Toolbar