Oracle—静态数据字典和动态性能视图

文章目录

  • 静态数据字典
    • 三组常用的数据字典视图
    • 其他常用特殊数据字典视图
  • 动态性能视图
  • 静态数据字典与动态性能视图的比较

静态数据字典

数据字典是Oracle数据管理系统的核心,它存储整个Oracle数据库的所有数据定义信息,如数据库的物理存储结构和逻辑存储结构,存储空间的分配使用情况数据库内的对象及其约束,以及用户、角色、权限设置等。

Oracle数据字典由以下两种对象类型组成:

基表:大部分数据是以加密格式存储的,用户不应该直接访问基表。
用户访问视图:这些视图基于数据字典基表而创建,它们汇总数据字典基表内的信息,以可读的方式提供给用户使用。

SYS用户拥有所有数据字典基表和用户访问视图,为了便于访问,Oracle为大部分视图创建了同名的public同义词。数据字典存储在system表空间内。

三组常用的数据字典视图

USER 用户视图,只能检索当前用户所拥有的对象
ALL 扩展用户视图,可检索用户所拥有以及其有权访问的对象信息
DBA 系统管理员视图,整个数据库的全局视图,包含所有用户的所有模式的对象信息

其他常用特殊数据字典视图

  • dictionary和dict_columns:前者列出所有数据字典视图的名称及其描述,后者列出每个数据字典视图中各列的名称及其描述。
  • global_name:列出数据库的全局名。
  • product_component_version:列出当前数据库各个组件产品的版本和状态信息、
  • dual:一个特殊表,它只有一列DUMMY和一行数据,该行的列值是X。dual表常用在没有目标表的select语句,用于计算表达式的值,并返回单个计算结果。

动态性能视图

Oracle数据库运行过程中维护了一套动态性能视图,用于记录数据库的当前活动,管理员在进行会话管理、备份操作和性能调优时必须要使用它们。这些视图之所以被称之为动态性能视图,是因为在实例运行和数据库使用过程中,它们的内容不断地更新,而且其内容也主要与性能有关。

与动态性能视图相关的对象分为以下三种:

  • 基表:名称前缀为。它们不存储在数据库中,而是构建在0racle实例的内存结构内,所以又被称作虚拟表。普通用户不能直接访问X$表;
  • 视图:基于X$表创建的动态性能视图,它们的名称前缀是V_$,又被称作V$视图。只有sys用户才能访问该视图。动态性能视图的结构定义及其基表中的数据都不能由用户修改,因此动态性能视图又被称作固定表;
  • 同义词:Oracle为V$视图创建了public同义词,这些同义词的名称前缀为V$。数据库管理员和其他用户应该通过这些同义词访问V$视图,而不是直接访问V_$对象。

静态数据字典与动态性能视图的比较

数据字典存储数据定义信息,这些信息只有在数据定义发生改变时(用户执行DDL语句时,如创建对象、用户,向用户授权等)才发生改变,所以它们改变的频率不高,因此数据字典又被称作静态数据字典。因而与此相反,动态性能表中存存储的信息随数据库内活动的变化而实时改变,其变化频率高,因此被称作动态性能视图。

比较项目 数据字典 动态性能视图
创建方法 数据库创建后运行catalog.sql脚本创建 数据库创建后运行catalog.sql脚本创建
所有者 SYS用户 SYS用户
存储位置 SYSTEM表空间内 实例内存结构中
内容更新及频率 执行DDL语句时更新,更新频率相对较低。但其数据永久存储 实例运行和数据库使用过程中动态实时更新,数据更新频率高。实例关闭时被清空
可访问时间 名称多以DBA_、ALL_、USER_做前缀 视图及同义词的名称前缀分别为V_$,GV_$和V$,GV$

博主首页链接:https://blog.csdn.net/weixin_44736475
原创不易,希望大家多多支持
如果文章对你有帮助,记得一键三连哦!❤️❤️❤️

你可能感兴趣的:(Oracle,数据库)