1

Why when I add a table to my user I see it in the user_tables table. I’m asking it because this table is a data dictionary table and it should be static and updated only when the DB is starting, while the dynamic performance views are updating while the DB is up. Also, I saw that there is no v$ view for tables in the DB.

Mureinik
  • 297,002
  • 52
  • 306
  • 350
itaiman5
  • 41
  • 1
  • 1
  • 2
  • 1
    [`USER_TABLES`](https://docs.oracle.com/cd/B12037_01/server.101/b10755/statviews_1190.htm#i1592091) is a *system view*. It is updated when you gather statistics with `ANALYZE`. – GMB Dec 31 '19 at 14:22
  • 1
    What is ur question ? – Moudiz Dec 31 '19 at 14:47
  • 3
    @GMB - the actual, undocumented, tables that are behind the USER_TABLES view (as well as ALL_TABLES and DBA_TABLES) are also updated by any ddl that creates, deletes, or modifies a table structure, as well as execution of DBMS_STATS, which has superceded the ANALYZE command. – EdStevens Dec 31 '19 at 15:01

2 Answers2

3

You are making an assumption:

this table is a data dictionary table and it should be static and updated only when the DB is starting

which just isn't correct.

The data dictionary tables store information about the database structure and are modified (as you've seen) whenever this structure is modified (i.e., a DDL is executed).

Mureinik
  • 297,002
  • 52
  • 306
  • 350
1

Your perception is incorrect. The data dictionary is dynamic and will change based to database changes, as you have seen.

BobC
  • 4,208
  • 1
  • 12
  • 15