设为首页 收藏本站
查看: 678|回复: 0

[经验分享] Oracle 数据库字典,视图,基表

[复制链接]

尚未签到

发表于 2016-7-24 10:03:41 | 显示全部楼层 |阅读模式
1.
数据字典
(存放在sys方案里面)

Java代码


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


2.数据字典基表

Java代码


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


3.
数据字典视图

Java代码


  • 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.
动态性能视图

Java代码


  • 1.记载了数据库例程启动后的相关信息
  • 2.当启动oracleservice时系统会建立动态性能试图
  • 3.当停止oracleservice的时候,系统会删除动态性能视图
  • 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.
数据库不同状态的时候视图的变化

Java代码


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


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

Java代码


  • 1.selecttable_namefromuser_tables//查询权限属于自己的表


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

Java代码


  • selecttable_namefromall_tables;//查询当前用户可以访问的所有表(别人授权访问的表


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

Java代码


  • selecttable_namefromdba_tables;//但是查询这种数据库字典视图,要求用户必须用dba角色和selectanytable系统权限


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

Java代码


  • select*fromdba_users;


10.查询表空间

Java代码


  • selecttablespace_namefromdba_tablespaces;


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

Java代码


  • select*fromdictwherecommentslike‘%grant%’


12.
显示当前数据库的全称

Java代码


  • select*fromglobal_name;


13.所以上面的查询结果中数量是 dba_tables > all_tables > user_tables;

14.oracle用户所拥有的权限和角色都存放在数据库字典中

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-248524-1-1.html 上篇帖子: ORACLE数据库插入性能测试 下篇帖子: Oracle的update语句优化研究【转】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表