Oracle—静态数据字典和动态性能视图
Posted Casey321
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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—静态数据字典和动态性能视图的主要内容,如果未能解决你的问题,请参考以下文章