oracle数据字典和动态性能表

重要参考1:

重要参考2:

重要参考3:

参考幻灯片

11g data dictionary 参考


重要性:

因为数据字典中有用户的信息,我们登录的时候要查询数据字典,有权限信息,我们做操作的时候也要查询数据字典,有约束信息

我们操作数据的时候也要查询数据字典,所以数据字典对于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信息有不同 的前缀。

下面是很好的说明:

PrefixScope

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> select sid, serial#, username, osuser, machine from v$session
  2 where username is not NULL;
注意 这个sid ,serial#列是一个连接到oracle数据库的用户一个标示。username是连接到数据库的用户名,OSUSER列显示连接到数据库的用户的操作系统名称,


在oracle中有很多动态性能视图,提供了很多有价值的信息。

参见文档寻找更多动态视图信息



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值