数据字典和动态性能视图

oracle内部有一部分表,记录了数据库对象的更改和修正。这些内部表有两种:静态数据字典、动态性能表。这些表是只读表,sys用户也不能修改,oracle自动修改

一、数据字典

1.1功能

  • 数据库核心信息
  • 只读表和只读视图
  • sys用户拥有,可以通过sys看,普通用户也可以看user
  • oracle server内部维护,ddl操作会更新数据字典
  • 通过select访问,只读
  • 记录数据库的物理结构逻辑结构模式信息和对象信息(用户、约束、权限、审计等)
  • 存放在system tablespace

查询所有数据字典表的名称,以及数据字典表的个数。所有的数据字典信息都存在与dict表中

SQL> select * from dict where table_name='DBA_OBJECTS';


TABLE_NAME                   COMMENTS
---------------------------------------------------------------------
DBA_OBJECTS                  All objects in the database

SQL> select count(table_name) from dict;

COUNT(TABLE_NAME)
-----------------
             4690

dict中有4690个系统表

1.2数据字典组成

字典基表:create tablebase时,执行$ORACLE_HOME/rdbms/admin/sql.bsq

静态试图:$ORACLE_HOME/rdbms/admin/catalog.sql

1.3 数据字典:静态试图

static ;open状态下访问,通过静态试图了解database架构(记录database架构,object的数据定义和存储等信息)

dba_:存储所有用户对象的信息(默认sys/system用户可以访问)

all_:存储当前用户可以访问的对象(包括当前用户所拥有的对象,以及别的用户授权可以访问的对象)的信息

user_:存储当前用户所拥有的对象的相关信息

二、动态性能表

2.1定义

用于维护当前实例信息,由于不断的更新,叫动态视图。

底层是一组虚拟的动态表,称X$表,oracle不允许直接访问X$表,而是访问这些表创建的视图的同义词。不可以直接访问,甚至不推荐访问视图,而是访问视图的同义词

基表(X$)---------视图(v_$)-----------同义词(v$)----------用户访问

每个v$视图都有一个GV$视图(RAC OPS用的),除特例情况

2.2基表查看

基表x$不可以直接访问

SQL> select file# from v$datafile;

     FILE#
----------
         1
         2
         3
         4
         5
         7
         8

7 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 3398306107

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

| Id  | Operation        | Name    | Rows  | Bytes | Cost (%CPU)| Time
     |

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

|   0 | SELECT STATEMENT |         |     4 |    24 |     0   (0)| 00:0
0:01 |

|*  1 |  FIXED TABLE FULL| X$KCVDF |     4 |    24 |     0   (0)| 00:0
0:01 |

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


Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter("INST_ID"=USERENV('INSTANCE'))


Statistics
----------------------------------------------------------
         21  recursive calls
          0  db block gets
         29  consistent gets
          0  physical reads
          0  redo size
        641  bytes sent via SQL*Net to client
        390  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          7  rows processed

2.3 v$fixed_table视图

可以通过访问v$fixed_table视图查到所有动态试图相关信息。

查询动态视图动态表

SQL> select name from v$fixed_table where name like '%DATA%';

NAME
--------------------------------------------------------------------------------------------
X$KRBPDATA
X$SHADOW_DATAFILE
X$DIAG_IPS_FILE_METADATA
X$DIAG_VIPS_FILE_METADATA
GV$DATABASE_KEY_INFO
V$DATABASE_KEY_INFO

查看动态试图个数

SQL> select count(*) from v$fixed_table;

  COUNT(*)
----------
      2898

共有2898个动态试图

注:

动态性能视图填充了来自实例(内存)和控制文件的信息,前缀为DBA_,all_,user_则是填充了来自数据字典的信息。由此可以得出不同阶段查询不同的视图。

静态试图在system数据表空间上,非open状态看不见

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值