Subscribe to Posts by Email

Subscriber Count

    701

Disclaimer

All information is offered in good faith and in the hope that it may be of use for educational purpose and for Database community purpose, but is not guaranteed to be correct, up to date or suitable for any particular purpose. db.geeksinsight.com accepts no liability in respect of this information or its use. This site is independent of and does not represent Oracle Corporation in any way. Oracle does not officially sponsor, approve, or endorse this site or its content and if notify any such I am happy to remove. Product and company names mentioned in this website may be the trademarks of their respective owners and published here for informational purpose only. This is my personal blog. The views expressed on these pages are mine and learnt from other blogs and bloggers and to enhance and support the DBA community and this web blog does not represent the thoughts, intentions, plans or strategies of my current employer nor the Oracle and its affiliates or any other companies. And this website does not offer or take profit for providing these content and this is purely non-profit and for educational purpose only. If you see any issues with Content and copy write issues, I am happy to remove if you notify me. Contact Geek DBA Team, via geeksinsights@gmail.com

Pages

Difference between object_id and data_object_id from dba_objects

Hello,

I have got two questions from my friend.

1) What is the difference between object_id and data_object_id?

2) Will be there any performance impact if data_object_id changes?

For the question #1,

    a) Object_id represents the primary_key or the unique identifier for the object
    b) data_object_id is the pointer (foreign key courtesy TOM) to the data segment (physical segment)

Since some objects like synonyms etc does not have segments they will not have data_object_id's which supports the argument (b) above.

Now lets move on, both will be same or different

Well, the object_id and data_object_id will be same initially, The data object id is assigned to that segment and any kind of change done on the physical segment would lead to give a change in that number for data_object_id and data_object_id will be changed for following cases

      a) Alter table or alter index
      b) Alter table exchange partition
      c) Truncate table 
      d) Alter table move or using redefinition package
      e) if the table is part of a cluster, data_object_id points to cluster segment

For question #2, will be there any performance impact?
a) Answer will be NO, (according to my knowledge, if anyone has got any pointers please comment)
b) A question in my mind, thinking logically when you use rowid in your app (a combination of datafile,block,row) shall it affect? Again data_object_id
is again a kind of logical representation number like foreign key so may not affect the rowid based calls

Any pointers to know more about on this would be most welcome.

-Thanks
Geek DBA

Comments are closed.