oracle 视图 基表 字段,Oracle 数据库字典 视图 基表

本文详细介绍了Oracle数据库中的数据字典,包括其组成部分、数据字典基表和视图的作用,以及不同状态下的访问权限。数据字典是只读的,用于存储系统信息,用户通常通过查询视图获取数据。动态性能视图记录数据库运行时的状态,其访问权限受限于数据库状态和用户角色。还给出了多个查询示例,如查询用户表、表空间信息等。

1.

数据字典 (存放在sys方案里面)

1.是oracle数据库中重要的组成部,提供了数据库的一些系统信息。

2.它是只读表(数据字典基表)和视图(数据字典视图)的集合,数据库字典的所有者为sys用户。

3.用户只能在数据库字典上执行查询的操作,而其他的维护和修改都是由系统自动完成的

2.数据字典基表

1.数据字典基表存储数据库的基本信息

2.只有Oracle才能写和读取这些表。用户很少能够直接访问这些表,因为它们是非标准的,大多数数据以加密格式存储。

3.但是,用户可访问视图:总结和显示数据字典基表的信息的视图。这些视图将基表的信息解密成有用的信息,如用户或者表名。大多数用户能够访问这些视图,但不能访问基表

3.

数据字典视图

1.数据字典视图是基于数据字典基表建立的视图

2.普通用户可以通过查询系统数据字典视图获取系统信息

3.数据字典视图主要包括

A.静态数据字典视图:user_xxx,all_xxx,dba_xxx 三种类型

B.动态数据字典视图:动态性能视图

4.常用静态数据库字典视图

dba_data_files:通常用来查询关于数据库文件的信息

dba_db_links:包括数据库中的所有数据库链路,也就是databaselinks。

dba_extents:数据库中所有分区的信息

dba_free_space:所有表空间中的自由分区

dba_indexs:关于数据库中所有索引的描述

dba_ind_columns:在所有表及聚集上压缩索引的列

dba_objects:数据库中所有的对象

dba_rollback_segs:回滚段的描述

dba_segments:所有数据库段分段的存储空间

dba_synonyms:关于同义词的信息查询

dba_tables:数据库中所有数据表的描述

dba_tabespaces:关于表空间的信息

dba_tab_columns:所有表描述、视图以及聚集的列

dba_tab_grants/privs:对象所授予的权限

dba_ts_quotas:所有用户表空间限额

dba_users:关于数据的所有用户的信息

dba_views:数据库中所有视图的文本

4.

动态性能视图

1.记载了数据库例程启动后的相关信息

2.当启动oracle service时 系统会建立动态性能试图

3.当停止oracle service的时候,系统会删除动态性能视图

4.ORACLE 的所有动态性能视图都是以 v_$开始的,并且oracle为每个动态性能视图都提供了相应的同义词,并且同义词都是以V$开始的 例如 v_$datafile 的同义词是v$datafile;

5. 动态性能的所有者是sys,一般情况下,由dba和特权用户来查询动态性能视图。

6.常用动态性能视图

v$thread:从控制文件中获取的线程的信息;

v$tablespace:从控制文件中获取的表空间的信息;

v$spparameter:显示SPFILE文件中的参数信息,如果SPFILE没有被用来启动实例,则视图中的所有ISSPECIFIED列将会是FALSE;

v$sga:显示SGA的信息;

v$instance:显示当前实例的状态;

v$controlfile:显示控制文件列表;

v$database:从控制文件中获取的数据库的信息;

v$datafile:数据库使用的数据文件信息

v$librarycache:共享池中SQL语句的管理信息

v$lock:通过访问数据库会话,设置对象锁的所有信息

v$log:从控制文件中提取有关重做日志组的信息

v$logfile有关实例重置日志组文件名及其位置的信息

v$parameter:初始化参数文件中所有项的值

v$process:当前进程的信息

v$rollname:回滚段信息

v$rollstat:联机回滚段统计信息

v$rowcache:内存中数据字典活动/性能信息

v$session:有关会话的信息

v$sesstat:在v$session前会话的统计信息

v$sqlarea:共享池中使用当前光标的统计信息,光标是一块内存区域,有OracSQL语句时打开。

v$statname:在v$sesstat个统计的含义

v$sysstat:基于当前操作会话进行的系统统计

5.

数据库不同状态的时候视图的变化

1.动态性能视图一般来说,大部分用户是不能够访问的,特别是数据库系统的终端用户。一般情况下,只有数据库管理员角色的用户才能够访问。而且,当数据库其状态不同时,可以访问的数据字典动态性能视图也不同

数据库不同状态:

A:Nomount状态时

当我们连接到数据库服务器,启动某个例程的时候,数据库本身还没有被加载,此时,就叫做Nomount状态。在这个状态下,即使是数据库管理员,其可以访问的数据字典动态性能视图也是非常有限的。当数据库某个例程启动之后,数据库会打开某些参数文件,并且会在内存中分配SGA区并启动相关的后台进程。由于此时没有加载数据库,所以,数据库管理员之能够访问从SGA区获得信息的动态性能视图。

B:Mount状态时

当我们去加载某个数据库的时候,Oracle会打开其参数文件中指定的控制文件,以实现加载数据库的过程。此时,数据库管理员访问的数据字典性能视图就会多一点,除了可以访问从SGA区获得信息的动态性能视图,还可以访问从控制文件中获得信息的动态性能视图。也就是说,当数据库出于Mount状态时,其动态性能数据视图的数据来源有两个部分,一是来自于SGA区的,二是来自于控制文件中的

C:Open状态时

当数据库打开的时候,数据库系统会根据控制文件中所定义的信息,打开所有的数据文件以及对应的重做日至文件。这个时候,我们数据库管理员可以访问的动态性能视图就包括三个部分,一是来自与SGA区的信息;二是来自于控制文件中的信息,三是Oracle数据库性能的相关动态性能视图

6.举例:查询用户自己拥有多少张表(自己的表)

1.select table_name from user_tables //查询权限属于自己的表

7.查询当前用户可以访问的所有表 (其中 有别人授权的表)

select table_name from all_tables; //查询当前用户可以访问的所有表 (别人授权访问的表

8.显示所有方案拥有的数据库表

select table_name from dba_tables;//但是查询这种数据库字典视图,要求用户 必须用dba角色和select any table 系统权限

9.查询数据库中所有用户的详细信息

select * from dba_users;

10.查询表空间

select tablespace_name from dba_tablespaces;

11.

显示当前用户可以查看的所有数据字典视图

select * from dict where comments like ‘%grant%’

12.

显示当前数据库的全称

select * from global_name; 13.所以上面的查询结果中数量是 dba_tables > all_tables > user_tables; 14.oracle用户所拥有的权限和角色都存放在数据库字典中

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值