浅析dba_tables,dba_object_tables,dba_all_tables视图的关系


什么是对象表?什么是关联表?

1.A relational table, which is the basic structure to hold user data.

2.An object table, which is a table that uses an object type for a column definition. An object table is explicitly defined to hold object instances of a particular type.


DBA_ALL_TABLES


describes all object tables and relational tables in the database.所有对象表和关系表

SQL> set long 4000;

SQL> select dbms_metadata.get_ddl('VIEW','DBA_ALL_TABLES','SYS') from dual;

DBMS_METADATA.GET_DDL('VIEW','DBA_ALL_TABLES','SYS')

--------------------------------------------------------------------------------

  CREATE OR REPLACE FORCE VIEW "SYS"."DBA_ALL_TABLES" ("OWNER", "TABLE_NAME", "T

ABLESPACE_NAME", "CLUSTER_NAME", "IOT_NAME", "STATUS", "PCT_FREE", "PCT_USED", "

INI_TRANS", "MAX_TRANS", "INITIAL_EXTENT", "NEXT_EXTENT", "MIN_EXTENTS", "MAX_EX

TENTS", "PCT_INCREASE", "FREELISTS", "FREELIST_GROUPS", "LOGGING", "BACKED_UP",

"NUM_ROWS", "BLOCKS", "EMPTY_BLOCKS", "AVG_SPACE", "CHAIN_CNT", "AVG_ROW_LEN", "

AVG_SPACE_FREELIST_BLOCKS", "NUM_FREELIST_BLOCKS", "DEGREE", "INSTANCES", "CACHE

", "TABLE_LOCK", "SAMPLE_SIZE", "LAST_ANALYZED", "PARTITIONED", "IOT_TYPE", "OBJ

ECT_ID_TYPE", "TABLE_TYPE_OWNER", "TABLE_TYPE", "TEMPORARY", "SECONDARY", "NESTE

D", "BUFFER_POOL", "FLASH_CACHE", "CELL_FLASH_CACHE", "ROW_MOVEMENT", "GLOBAL_ST

ATS", "USER_STATS", "DURATION", "SKIP_CORRUPT", "MONITORING", "CLUSTER_OWNER", "

DBMS_METADATA.GET_DDL('VIEW','DBA_ALL_TABLES','SYS')

--------------------------------------------------------------------------------

DEPENDENCIES", "COMPRESSION", "COMPRESS_FOR", "DROPPED", "SEGMENT_CREATED") AS

  select OWNER, TABLE_NAME, TABLESPACE_NAME, CLUSTER_NAME, IOT_NAME, STATUS,

     PCT_FREE, PCT_USED,

     INI_TRANS, MAX_TRANS,

     INITIAL_EXTENT, NEXT_EXTENT,

     MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE,

     FREELISTS, FREELIST_GROUPS, LOGGING,

     BACKED_UP, NUM_ROWS, BLOCKS, EMPTY_BLOCKS,

     AVG_SPACE, CHAIN_CNT, AVG_ROW_LEN,

     AVG_SPACE_FREELIST_BLOCKS, NUM_FREELIST_BLOCKS,

     DEGREE, INSTANCES, CACHE, TABLE_LOCK,

DBMS_METADATA.GET_DDL('VIEW','DBA_ALL_TABLES','SYS')

--------------------------------------------------------------------------------

     SAMPLE_SIZE, LAST_ANALYZED, PARTITIONED,

     IOT_TYPE, NULL, NULL, NULL, TEMPORARY, SECONDARY, NESTED,

     BUFFER_POOL, FLASH_CACHE,

     CELL_FLASH_CACHE, ROW_MOVEMENT,

     GLOBAL_STATS, USER_STATS, DURATION, SKIP_CORRUPT, MONITORING,

     CLUSTER_OWNER, DEPENDENCIES, COMPRESSION, COMPRESS_FOR, DROPPED,

     SEGMENT_CREATED

from dba_tables

union all

select "OWNER","TABLE_NAME","TABLESPACE_NAME","CLUSTER_NAME","IOT_NAME","STATUS"

,"PCT_FREE","PCT_USED","INI_TRANS","MAX_TRANS","INITIAL_EXTENT","NEXT_EXTENT","M

DBMS_METADATA.GET_DDL('VIEW','DBA_ALL_TABLES','SYS')

--------------------------------------------------------------------------------

IN_EXTENTS","MAX_EXTENTS","PCT_INCREASE","FREELISTS","FREELIST_GROUPS","LOGGING"

,"BACKED_UP","NUM_ROWS","BLOCKS","EMPTY_BLOCKS","AVG_SPACE","CHAIN_CNT","AVG_ROW

_LEN","AVG_SPACE_FREELIST_BLOCKS","NUM_FREELIST_BLOCKS","DEGREE","INSTANCES","CA

CHE","TABLE_LOCK","SAMPLE_SIZE","LAST_ANALYZED","PARTITIONED","IOT_TYPE","OBJECT

_ID_TYPE","TABLE_TYPE_OWNER","TABLE_TYPE","TEMPORARY","SECONDARY","NESTED","BUFF

ER_POOL","FLASH_CACHE","CELL_FLASH_CACHE","ROW_MOVEMENT","GLOBAL_STATS","USER_ST

ATS","DURATION","SKIP_CORRUPT","MONITORING","CLUSTER_OWNER","DEPENDENCIES","COMP

RESSION","COMPRESS_FOR","DROPPED","SEGMENT_CREATED" from dba_object_tables

可以确定DBA_TABLESDBA_ALL_TABLES的子集

DBA_OBJECT_TABLES

describes all object tables in the database.描述了所有对象表

再次查询了DBA_OBJECT_TABLES, 定义就很复杂了,不过可以确定的是这个视图是从底层表查数据的。

其实看到这里可以发现,DBA_TABLES其实可以看成DBA_RELATIONAL_TABLES,这样更好理解DBA_TABLES,DBA_OBJECT_TABLES,DBA_ALL_TABLES的关系。

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

转载于:http://blog.itpub.net/31461640/viewspace-2141104/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值