重要性:
因为数据字典中有用户的信息,我们登录的时候要查询数据字典,有权限信息,我们做操作的时候也要查询数据字典,有约束信息
我们操作数据的时候也要查询数据字典,所以数据字典对于oracle数据库非常重要。
主要了解数据库的一些内建的对象,数据字典的了解和使用,数据字典的view是如何创建,学会查询这些表。
数据字典主要描述数据库和它的对象,包含只读表和视图,这些只读表和视图存储在system表空间中,有oracle server自动
进行维护,普通用户没有权限查看,oralce DBA也只能查看而已。 这些表的是属于sys用户的。只能select访问。
主要学习oralce 的数据字典 和 动态性能表部分
数据字典在oracle中有很重要的作用,是一个提供oralce信息的只读的表,数据字典包含:
一:数据字典包含什么信息
1:数据库中所有schema 对象的定义包括(tables, views, indexes, clusters, synonyms, sequences, procedures, functions, packages, triggers, and so on)
2:schema object对象已经分配了多少空间,当前使用了多少空间
3:存储了数据库结构的物理和逻辑结构
4:数据的完整性约束信息
5:用户的信息,角色信息,权限信息 以及审计 和 对象空间的分配情况。
数据字典由 表和视图构成,所有数据字典表的表和视图在存储空间由system表空间提供。
数据字典不仅对于数据库很重要,对于用户,dba 等都很重要,只能使用SQL语句访问数据字典,因为数据字典是只读的,只能通过SELECT语句访问这些表和view
二:数据字典的构成:
数据字典主要包含如下两个部分:
1: Base tables 基表
存储数据库的描述,当执行 create database的时候就确定了。创建基表的脚本:sql.bsq 当创建数据库的时候,这个脚本会自动调用创建基表。
这个脚本在 ORACLE_HOME/rdbms/admin下面,有兴趣的可以去看看,我的oracle这个的地址为:
D:\app\topwqp\product\11.1.0\db_1\RDBMS\ADMIN
这些基表的信息比较神秘,一般不要动,即使是DBA一般也不要操作表。
2: data dictionary views(用户可访问的views)
这些视图总结和显示数据字典的base table的信息,这些视图把base table中的信息转化为更直观更需要的信息,
大部分用户是需要访问 views 而不是base table
主要这个views的视图的创建是通过在创建视图后执行catalog.sql脚本生成的数据字典视图,
这个脚本的位置也在:D:\app\topwqp\product\11.1.0\db_1\RDBMS\ADMIN
data dictionary view 是一个静态view 因为改动小,不是不改动,而是改动很少。
下图说明了两个分类:
什么时间数据字典会改动呢?
当使用DDL(DATA DEFINE LANGUAGE)语言的时候,ORACLE SERVER会修改数据字典的信息,比如 创建表 ,删除表,添加约束和 索引等。数据字典的owner(所有者)是SYS 用户,其他用户不能修改这个用户的信息,所以安全性很高。
注意:修改和操作数据字典表也许会长期影响数据的操作。所以需慎重。
三:数据字典的使用
如何使用数据字典呢?
数据字典有三个主要的用处:
1:oracle 在找用户的信息,schema对象,和存储结构的时候需要数据字典
2:每次操作DDL(Data definition language)的时候,oracle server会修改数据字典的信息
3:一些授权的oralce用户能够通过select语句查看数据字典的信息。
PS 数据字典多使用同义的别名,使用Cache 加快访问
如何使用数据字典:
所有的数据库用户能够访问数据字典view,通过SQL语句进行访问,一些视图能够被所有的 的用户访问,但是也有些视图只能被DBA访问。
当数据库是open状态的时候,数据字典就可以访问了,数据字典中包含很多views,在这些视图中大概分为3中类型的视图,不同类型的views信息有不同 的前缀。
下面是很好的说明:
Prefix Scope
USER
User's view (what is in the user's schema)
ALL
Expanded user's view (what the user can access)
DBA
Database administrator's view (what is in all users' schemas)
不同视图的区别:
含有USER前缀的视图通常不包含 OWNER这一列,这一列用户通常不能看到。
一些DBA前缀的视图包含更多列的信息。
三个主要的区别就是部分列的信息不同。
USER_XXX
这个视图主要描述user关心的信息:
1:有用户自己在数据库中的私有环境,包括被用户创建的schema对象信息 和用户的权限信息。
2:显示用户和用户相关的列
3:和 ALL_XXX 的view相比没有OWNER列,其他都一致。
4:根据第三条返回的结果当然是 ALL_VIEW的子集了 subset 简直是废话;
例如:SELECT object_name, object_type FROM USER_OBJECTS;
ALL_XXX
SELECT owner, object_name, object_type FROM ALL_OBJECTS;
DBA_XXX
SELECT owner, object_name, object_type FROM SYS.DBA_OBJECTS;
数据字典一览表: select table_name from dictionary;
动态性能视图(dynamic performance V$ views)
11g联机文档参考
重要参考
动态性能视图:
1:virtural tables 数据库信息以表的形式展示出来
2:记录了数据库当前的活动情况
3:当操作的时候会时不时的更新
4:动态性能表的信息来自 内存 和 控制文件中
5:主要作用: 监控和调优数据库
6:owner 所有者 : sys用户
7: 表名开始于V$
8:动态性能表的一览表在 V$FIXED_TABLE;
DESC v$FIXED_TABLE
一些常用的动态性能表:
V$contrllfile 系统中的控制文件
v$parameter 数据库参数信息
v$spparameter
v$SGA
V$TABLESPACE
V$THREAD
等表信息
在oracle online document中
动态视图对于实时的监控数据库的性能非常有用:
下面讲讨论三点:
1:动态视图的目的(为什么要有动态视图)
2:动态视图的体系
3:动态视图的使用
1:The purpose of the Dynamic Performance Views
动态视图能够实时监控oracle的内脏,就相当人的各部部分的健康等,监控oracle各个部分的性能。
数据字典和动态视图有什么不同呢?
这样想像一下:数据字典像一对零件,它列出了一个汽车的所有的部分,显示了这些汽车零件的在汽车中的位置这
很容易理解,如果你想替换其中的一些零件,如果你想调整汽车的速度,换零件是一个不可取的选择。
V$动态视图就像汽车的车速计和转速计,它将告诉我们当前汽车的速度多快,通过通过调速灯帮助我们调节速度,数据库也一样,动态视图提供了数据库各个部分状况的反馈。
2:动态性能视图的体系结构
动态性能视图是一种很低级的oracle视图,我们很少需要去访问它,这些视图叫做X$ ,这个视图反应了oracle内部的结构。
X$视图位于oracle的底层,一般不是高手不要访问了。V$是创建在X$之上的视图,我觉得V$视图是X$的同义,最好利用V$去查询。
V$视图的使用:
下面是一些使用V$视图的例子:
如果ORACLE DBA想知道 who 连接这个系统,下列查询能够满足这个要求:
[sql]
SQL> select sid, serial#, username, osuser, machine from v$session
2 where username is not NULL;
注意 这个sid ,serial#列是一个连接到oracle数据库的用户一个标示。username是连接到数据库的用户名,OSUSER列显示连接到数据库的用户的操作系统名称,
在oracle中有很多动态性能视图,提供了很多有价值的信息。
相关推荐
### Oracle数据字典和动态性能视图 #### 1. 数据字典概述 数据字典在Oracle数据库中扮演着至关重要的角色,它是一系列只读表和视图的集合,用以存储关于数据库结构和配置的重要信息。这些信息对于数据库管理员(DBA...
数据字典和动态性能视图在Oracle数据库管理中扮演着至关重要的角色,它们为数据库管理员提供了丰富的信息资源,帮助理解数据库的状态和行为。 数据字典是Oracle数据库的核心组成部分,它是一组只读的表和视图,由...
### Oracle中的数据字典技术和动态性能视图 #### 数据字典技术与动态性能视图概述 在Oracle数据库中,数据字典与动态性能视图是理解数据库内部运作机制的重要工具。两者都提供了丰富的信息用于诊断问题、监控性能...
Oracle数据字典是Oracle数据库中用于存储数据库结构信息的重要组成部分,它描述了数据库的数据组织方式,并由多个表和视图组成。了解Oracle数据字典是数据库管理和维护工作的基础,因为它包含了数据库的元数据信息,...
1. **V$视图**:这是Oracle提供的一系列动态性能视图,用于查看当前数据库的状态和运行情况。例如,V$SESSION提供了会话信息,V$INSTANCE记录了实例的详细信息,V$DATABASE则包含了数据库的基本信息。 2. **DBA视图...
《Oracle数据字典大全》是IT领域中关于数据库管理的重要参考资料,主要针对Oracle...这篇文档可能是对Oracle数据字典的详尽总结,包含了丰富的实例和最佳实践,对于学习和使用Oracle数据库的人来说是一份宝贵的资源。
### ORACLE数据字典详解 #### 一、数据字典概念及作用 **数据字典**(Data Dictionary)是指对数据库中的各个数据对象及其属性进行...因此,在学习和工作中深入理解和熟练掌握Oracle数据字典的相关知识是非常有价值的。
数据字典在 Oracle 9i 中扮演着极其重要的角色,它不仅提供了对数据库对象的基本管理,还为高级功能如性能监控和故障诊断提供了支持。 #### 七、结语 Oracle 数据字典作为数据库的核心组成部分之一,其重要性...
Oracle数据字典是Oracle数据库中存储元数据(即关于数据的数据)的一系列特殊表和视图,用于描述数据库对象及其属性。数据字典提供了数据库内部结构的详细信息,包括但不限于表、视图、索引、用户、权限等,是DBA和...
在Oracle数据库管理中,数据字典和动态性能视图是两个至关重要的概念,它们对于数据库的管理和优化起着核心作用。下面将详细阐述这两个概念及其重要性。 数据字典是Oracle数据库内置的一种特殊类型的表和视图,它...
总的来说,Oracle数据字典是一个强大的工具,它允许管理员监控数据库健康状况、优化性能,并进行故障排查。深入理解数据字典的层次结构和组件,对于任何Oracle DBA来说都是必备技能。通过查询和分析数据字典,我们...
### Oracle 数据字典详解 #### 一、基本的数据字典列表 ...通过以上数据字典和动态性能视图的详细介绍,我们可以更深入地理解 Oracle 数据库的内部结构,并利用这些信息来管理数据库、解决性能问题以及进行日常维护。
动态数据字典是 Oracle 中的一些潜在的由系统管理员如 SYS 维护的表和视图,由于当数据库运行的时候它们会不断进行更新。动态性能视图提供了关于内存和磁盘的运行情况。 动态性能视图包括: * v$access 视图:显示...
这份"Oracle数据字典及中文详解"资料,对理解和管理Oracle数据库至关重要。 首先,我们来深入理解什么是数据字典。数据字典是数据库管理员和开发人员用于查询和理解数据库结构、对象和属性的重要工具。在Oracle中,...
ORACLE 数据字典是 Oracle 数据库管理和展现数据库系统信息和状态信息的工具,是一系列基表、基于这些基表而衍生的数据字典视图以及存在于系统内存中的动态性能视图的集合。 数据字典概念:数据字典是 Oracle ...
为了更好地理解和使用Oracle数据字典,我们可以通过以下几种方式来学习: 1. **查询X$ 表**:尽管直接访问X$ 表受到限制,但可以通过特定的技术或工具来间接访问。 2. **分析GV$ 和 V$ 视图**:这些视图为数据库...
### ORACLE 数据字典与视图详解 ...通过这些详细的数据字典视图和动态性能表,Oracle 数据库管理员可以有效地管理数据库资源,监控性能,以及进行故障排除等工作。这些工具对于确保数据库的稳定运行至关重要。
在Oracle数据库中,数据字典和动态性能视图是管理员和开发人员的重要工具,用于获取数据库的内部信息和监控系统状态。下面将详细解释这些视图及其用途。 ### 数据字典 数据字典是存储在数据库内部的一组表和视图,...