`
guoxuepeng
  • 浏览: 36892 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多
1.数据字典(存放在sys方案里面)
Java代码
  1. 1.是oracle数据库中重要的组成部,提供了数据库的一些系统信息。
  2. 2.它是只读表(数据字典基表)和视图(数据字典视图)的集合,数据库字典的所有者为sys用户。
  3. 3.用户只能在数据库字典上执行查询的操作,而其他的维护和修改都是由系统自动完成的

2.数据字典基表
Java代码
  1. 1.数据字典基表存储数据库的基本信息
  2. 2.只有Oracle才能写和读取这些表。用户很少能够直接访问这些表,因为它们是非标准的,大多数数据以加密格式存储。
  3. 3.但是,用户可访问视图:总结和显示数据字典基表的信息的视图。这些视图将基表的信息解密成有用的信息,如用户或者表名。大多数用户能够访问这些视图,但不能访问基表

3.数据字典视图
Java代码
  1. 1.数据字典视图是基于数据字典基表建立的视图
  2. 2.普通用户可以通过查询系统数据字典视图获取系统信息
  3. 3.数据字典视图主要包括
  4. A.静态数据字典视图:user_xxx,all_xxx,dba_xxx三种类型
  5. B.动态数据字典视图:动态性能视图
  6. 4.常用静态数据库字典视图
  7. dba_data_files:通常用来查询关于数据库文件的信息
  8. dba_db_links:包括数据库中的所有数据库链路,也就是databaselinks。
  9. dba_extents:数据库中所有分区的信息
  10. dba_free_space:所有表空间中的自由分区
  11. dba_indexs:关于数据库中所有索引的描述
  12. dba_ind_columns:在所有表及聚集上压缩索引的列
  13. dba_objects:数据库中所有的对象
  14. dba_rollback_segs:回滚段的描述
  15. dba_segments:所有数据库段分段的存储空间
  16. dba_synonyms:关于同义词的信息查询
  17. dba_tables:数据库中所有数据表的描述
  18. dba_tabespaces:关于表空间的信息
  19. dba_tab_columns:所有表描述、视图以及聚集的列
  20. dba_tab_grants/privs:对象所授予的权限
  21. dba_ts_quotas:所有用户表空间限额
  22. dba_users:关于数据的所有用户的信息
  23. dba_views:数据库中所有视图的文本

4.动态性能视图
Java代码
  1. 1.记载了数据库例程启动后的相关信息
  2. 2.当启动oracleservice时系统会建立动态性能试图
  3. 3.当停止oracleservice的时候,系统会删除动态性能视图
  4. 4.ORACLE的所有动态性能视图都是以v_$开始的,并且oracle为每个动态性能视图都提供了相应的同义词,并且同义词都是以V$开始的例如v_$datafile的同义词是v$datafile;
  5. 5.动态性能的所有者是sys,一般情况下,由dba和特权用户来查询动态性能视图。
  6. 6.常用动态性能视图
  7. v$thread:从控制文件中获取的线程的信息;
  8. v$tablespace:从控制文件中获取的表空间的信息;
  9. v$spparameter:显示SPFILE文件中的参数信息,如果SPFILE没有被用来启动实例,则视图中的所有ISSPECIFIED列将会是FALSE;
  10. v$sga:显示SGA的信息;
  11. v$instance:显示当前实例的状态;
  12. v$controlfile:显示控制文件列表;
  13. v$database:从控制文件中获取的数据库的信息;
  14. v$datafile:数据库使用的数据文件信息
  15. v$librarycache:共享池中SQL语句的管理信息
  16. v$lock:通过访问数据库会话,设置对象锁的所有信息
  17. v$log:从控制文件中提取有关重做日志组的信息
  18. v$logfile有关实例重置日志组文件名及其位置的信息
  19. v$parameter:初始化参数文件中所有项的值
  20. v$process:当前进程的信息
  21. v$rollname:回滚段信息
  22. v$rollstat:联机回滚段统计信息
  23. v$rowcache:内存中数据字典活动/性能信息
  24. v$session:有关会话的信息
  25. v$sesstat:在v$session前会话的统计信息
  26. v$sqlarea:共享池中使用当前光标的统计信息,光标是一块内存区域,有OracSQL语句时打开。
  27. v$statname:在v$sesstat个统计的含义
  28. v$sysstat:基于当前操作会话进行的系统统计

5.数据库不同状态的时候视图的变化
Java代码
  1. 1.动态性能视图一般来说,大部分用户是不能够访问的,特别是数据库系统的终端用户。一般情况下,只有数据库管理员角色的用户才能够访问。而且,当数据库其状态不同时,可以访问的数据字典动态性能视图也不同
  2. 数据库不同状态:
  3. A:Nomount状态时
  4.   当我们连接到数据库服务器,启动某个例程的时候,数据库本身还没有被加载,此时,就叫做Nomount状态。在这个状态下,即使是数据库管理员,其可以访问的数据字典动态性能视图也是非常有限的。当数据库某个例程启动之后,数据库会打开某些参数文件,并且会在内存中分配SGA区并启动相关的后台进程。由于此时没有加载数据库,所以,数据库管理员之能够访问从SGA区获得信息的动态性能视图。
  5. B:Mount状态时
  6. 当我们去加载某个数据库的时候,Oracle会打开其参数文件中指定的控制文件,以实现加载数据库的过程。此时,数据库管理员访问的数据字典性能视图就会多一点,除了可以访问从SGA区获得信息的动态性能视图,还可以访问从控制文件中获得信息的动态性能视图。也就是说,当数据库出于Mount状态时,其动态性能数据视图的数据来源有两个部分,一是来自于SGA区的,二是来自于控制文件中的
  7. C:Open状态时
  8. 当数据库打开的时候,数据库系统会根据控制文件中所定义的信息,打开所有的数据文件以及对应的重做日至文件。这个时候,我们数据库管理员可以访问的动态性能视图就包括三个部分,一是来自与SGA区的信息;二是来自于控制文件中的信息,三视Oracle数据库性能呢个相关的动态性能视图

6.举例:查询用户自己拥有多少张表(自己的表)
Java代码
  1. 1.selecttable_namefromuser_tables//查询权限属于自己的表

7.查询当前用户可以访问的所有表 (其中 有别人授权的表)
Java代码
  1. selecttable_namefromall_tables;//查询当前用户可以访问的所有表(别人授权访问的表

8.显示所有方案拥有的数据库表
Java代码
  1. selecttable_namefromdba_tables;//但是查询这种数据库字典视图,要求用户必须用dba角色和selectanytable系统权限

9.查询数据库中所有用户的详细信息
Java代码
  1. select*fromdba_users;

10.查询表空间
Java代码
  1. selecttablespace_namefromdba_tablespaces;

11.显示当前用户可以查看的所有数据字典视图
Java代码
  1. select*fromdictwherecommentslike‘%grant%’

12.显示当前数据库的全称
Java代码
  1. select*fromglobal_name;

13.所以上面的查询结果中数量是 dba_tables > all_tables > user_tables;
14.oracle用户所拥有的权限和角色都存放在数据库字典中
分享到:
评论

相关推荐

    数据库 视图

    你可以通过创建表的视图来表现数据的逻辑子集或数据的组合。视图 是基于表或另一个视图的逻辑表,...在Oracle系统中,有4种类型的视图,即关系视图、内嵌视图、对象 视图和物化视图。每一种类型的视图都有自己的特点。

    Oracle创建视图(View)

    视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。 视图是存储在数据字典里的一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合。 视图的优点: 1.对数据库的...

    Oracle复杂视图优化案例分析

    在使用Oracle数据库过程中,视图是作为数据库对象存在的,因而,在创建了这样的视图后,可以通过工具或者数据字典来查看视图的相关信息。视图来源于表,所有对视图数据的修改终都会被反映到视图的基表中,这些修改...

    ORA-00600 [16703].docx

    2.执行数据库一致性检查:使用 `dba_segment` 和 `dba_tables` 视图来检查数据库的一致性,并修复不一致的数据字典基表。 3.执行表清理操作:使用 `analyze table` 语句来分析和修复表中的不一致数据。 4.检查对象...

    Sys和system用户、sysdba 和sysoper系统权限、dba角色的区别

    【sys】 所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle...

    sys用户与system用户.txt

    【sys】所有 oracle 的数据字典的基表和视图都存放在 sys 用户中,这些基表和视图对于 oracle 的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。 sys 用户拥有 dba , sysdba , sysoper 等角色或...

    ORACLE9i_优化设计与系统调整

    §1.1 Oracle数据库结构 23 §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1 数据文件 26 §1.2.2 控制文件 26 §1.2.3 重做日志文件 26 §...

    Oracle中sys和system用户、系统权限和角色的区别

    【sys】 所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE这些角色主要用于访问数据字典视图和包。  EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。  自定义角色 ...

    最全的oracle常用命令大全.txt

    ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化, 体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。 数据字典里存有用户信息、用户的权限信息、...

    Oraclet中的触发器

    ORACLE事件指的是对数据库的表进行的INSERT、UPDATE及DELETE操作或对视图进行类似的操作。ORACLE将触发器的功能扩展到了触发ORACLE,如数据库的启动与关闭等。 1 DML触发器:ORACLE可以在DML语句进行触发,可以在...

    orcale常用命令

    ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化, 体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。 数据字典里存有用户信息、用户的权限信息、...

Global site tag (gtag.js) - Google Analytics