`

Oracle数据字典

阅读更多
转自:http://www.cnblogs.com/jinzhenshui/archive/2009/02/19/1394216.html
  说起字典,下面让我来打个比方。我们读书写字,靠的是什么?你会说:字!那我问你,你所用的字又是什么呢?!这时,你只可能把字典(新华字典、康熙字典、说文解字等等)里的说法拿出来解释了。再进一步,你能随随便便就自己写一本字典,把每个字重新定义一下,就去用吗?显然不可能,要是那样,世界早乱套了!有意思的是:即使是字典关于每个字的解释还是用其他的字来解释的,这样循环解释下去.....????????这其实只是表现形式的一致,内容上绝不会死循环的,那就是铁定规定一些最最基础的语义不可再分的字为基础字!其他的不过是多种说法写法,不断被解释的新字而已!
  就是这样:数据库里的数据字典就是就是解释数据库对象的对象,所以数据字典也叫元数据-metadata。他们不可以被用户增、删、改,只能查看使用。数据字典也有一些不可再分的字典基础表,其他的主要是视图、视图的视图、同义词而已,而我们能用的只能是这些视图、视图的视图、同义词。你问了“oracle为什么不让咱看基础表啊”?让你看,你看的懂吗?话又说回来,真让你看懂了,oracle不早关门了?! 这就是历史、兼容性、效率、管理、安全、习惯等问题了。
  为什么oracle提供了这么多的数据字典啊?你说是如果你盖房子了,是用现成的砖、水泥、钢筋等等建筑材料好啊,还是先从一个老房子上拆零件好啊?但有时候有集成度较高的半成品也是很好的,可这个东西是没有标准去把握的,只好仁者见仁、智者见智了。oracle也是不断顺应民意不断改变的!


oracle的数据字典主要从两个角度去划分的
static 和 dynamic 指的是字典信息内容是否实时更新,是否可以阶段重现或者是否可控。static主要适用于用户模式对象,在数据库open状态下使用;dynamic主要是数据库实例提供的内存结构信息,他们甚至没有database中存储的表结构,完全是oracle实例提供的内存表,而且可用的字典表在实例启动的不同阶段都是不同的。由此也引出了两者的可访问的方式有些不同:dynamic字典只能使用简单的 select where,要使用其他的东西,必须先转储位实体表;而 static 则没有这些限制!
privileges :指权限、安全管理角度。 其中,static 的 dba_、all_、user_ 指的是从用户ID安全角度定义了内容访问许可范围,由此引出了大量的数据字典视图、同义词;类似的dynamic的v_$、v$、gv_$、gv$从实例ID安全角度定义了内容访问许可范围,也引出了大量的数据字典视图、同义词!

oracle数据字典的衍生关系
oracle程序fixed 表-->fixed 视图:如v$instance  ----该层的fixed 表是对用户访问关闭的
oracle:  x$表-->gv$视图-->v$视图  --该层是对用户访问关闭的
          |    |
        gv_$视图  v_$视图
          |    |  
        gv$同义词 v$同义词
oracle:  *$基础表-->dba_*视图-->all_*视图-->user视图  ----该层的表是对用户访问关闭的
    all_*视图、user视图实际上都是从*$基础表定义而来的,逻辑范围上如上

在进行数据访问时,Oracle 访问 VIEW优先,然后是同义词。


你绝对用的到的基础数据字典
dictionary 【dict】  --列出所有的数据字典,oracle10g里有 1378 个!
dict_columns  --列出所有的数据字典表列
v$fixed_table  --列出所有的dynamic 表、视图,此处的 fixed 应理解为oracle内置的、固有的
v$fixed_view_definition  --列出所有dynamic视图的原始定义,此处的 fixed 应理解为oracle内置的、固有的
v$process  --oracle进程信息,addr
v$session  --oracle的会话信息,paddr对应v$process的addr,process指client的os的processid,*_sql_*,row_wait_row#,event等待事件描述,sql_trace
v$sql  --oracle缓存的sql
v$sgainfo、v$sgastat、v$pgastat  --sga的固定和动态组成情况
v$sysem_parameter  --oracle系统所有的初始化参数,不包含隐藏参数
v$sysem_event  --oracle实例的系统等等事件统计
v$thread  --当前lgwr线程信息,从中可以获得很多redo相关的信息。sequence#-1
v$version、v$option  --oracle的版本、组件情况
v$open_cursor  --oracle打开的所有cursor情况
v$object_dependency  --oracle系统运行时所有object的依赖情况
v$bgprocess  --oracle所有可能的后台进程,已经是否运行等情况
v$datafile、v$datafile_header  --oracle的datafile信息
v$log、v$logfile、v$log_history  --oracle的online redo 的信息及归档历史信息



其他常见的oracle数据字典(不断收集整理中......)
v$session_event、v$session_wait、v$session_wait_class、v$session_wait_history  --当前会话等待事件、汇总、历史统计
v$sql、v$sql_plan、v$sql_trace、v$sql_text、v$sql_cursor、v$sqlstats、v$sqlarea  --sql缓存中的sql文本
v$process_memory  --oracle进程的内存使用详细信息
v$system_wait_class  --oracle系统等待事件汇总
v$database  
v$instance
v$tablespace  --从控制文件中获得的关于表空间的基本信息
v$thread  --lgwr线程信息,从中可以获得很多redo相关的信息
分享到:
评论
1 楼 和平鸽 2012-12-22  

相关推荐

    Oracle 数据字典

    Oracle 数据字典 Oracle 数据字典是 Oracle 数据库系统的基础组件之一,由表和视图组成,存储有关数据库结构信息的一些数据库对象。数据库字典描述了实际数据是如何组织的,可以象处理其他数据库表或视图一样进行...

    Oracle数据字典大全.doc

    《Oracle数据字典大全》是IT领域中关于数据库管理的重要参考资料,主要针对Oracle数据库系统,提供了全面的数据字典信息。数据字典在Oracle中扮演着核心角色,它存储了数据库的所有元数据,即关于数据的数据,包括表...

    oracle数据字典制作流程

    oracle 数据字典制作流程 Oracle 数据字典是指 Oracle 数据库中的元数据信息,包括表结构、字段信息、索引、视图、存储过程等。数据字典是数据库管理员和开发人员了解数据库结构和数据关系的重要工具。在本文中,...

    Oracle数据字典及中文详解[含CHM版资料]

    这份"Oracle数据字典及中文详解"资料,对理解和管理Oracle数据库至关重要。 首先,我们来深入理解什么是数据字典。数据字典是数据库管理员和开发人员用于查询和理解数据库结构、对象和属性的重要工具。在Oracle中,...

    Oracle数据字典解析

    ### Oracle数据字典解析 #### 一、Oracle数据字典概览 Oracle数据字典是Oracle数据库中存储元数据(即关于数据的数据)的一系列特殊表和视图,用于描述数据库对象及其属性。数据字典提供了数据库内部结构的详细...

    Oracle数据字典.pdf )

    ### Oracle 数据字典详解 #### 一、基本的数据字典列表 Oracle 数据库中的数据字典是一系列系统表和视图的集合,用于存储数据库元数据。这些元数据包括了数据库对象(如表、视图、索引等)的定义、权限信息、以及...

    深入了解Oracle数据字典

    `V$FIXED_VIEW_DEFINITION`视图是探索Oracle对象关系的关键入口,它展示了Oracle数据字典中视图的定义。通过对这个视图的研究,我们可以了解Oracle如何构建和组织它的内部视图,从而更深入地理解数据库的工作机制。 ...

    oracle 导出数据字典的小工具

    Oracle 数据字典是数据库管理系统中的一个重要组成部分,它存储着关于Oracle数据库结构、权限、对象以及系统设置等元数据。在数据库管理和开发过程中,了解和掌握数据字典对于优化查询、故障排查以及数据库设计都至...

    Oracle数据字典参考

    ### Oracle 数据字典参考知识点详解 #### 一、Oracle 数据字典概述 Oracle 数据字典是存储关于数据库元数据信息的特殊集合,这些信息包括表、视图、索引、用户权限等。对于数据库管理员(DBA)以及开发人员来说,...

    ORACLE数据字典与视图

    ### ORACLE 数据字典与视图详解 #### 一、概述 Oracle 数据库是一个功能强大的关系型数据库管理系统,其中的数据字典与视图是管理数据库的重要组成部分。数据字典是数据库内部用来存储元数据(即关于数据的数据)的...

    oracle数据字典-数据操作

    里面有教学系统的oracle数据字典。同时插入了数据,当学习oracle时,可以利用里面的数据来进行数据操作。

    ORACLE数据字典(很实用,很适合DBA、开发运维人员、大学生)

    ### ORACLE数据字典详解 #### 一、数据字典概念及作用 **数据字典**(Data Dictionary)是指对数据库中的各个数据对象及其属性进行详细描述的集合,它为数据库设计者、开发者、运维人员乃至最终用户提供了一种有效...

    SQL Server-My SQL-Oracle数据字典生成工具chm.zip

    数据字典生成工具,用于生成 数据库表 及字段说明,主要特征如下: 1、支持的数据库类型:SQL Server 2005+,My SQL,Oracle; 2、支持的文档类型:HTML,CHM,WORD; 3、基于Open XML ,不用安装 MS Office,WPS 也可以生产...

    Oracle数据字典.ppt

    Oracle数据字典 Oracle数据字典是Oracle Relation Database Management System(RDBMS)中的一种知识库,存储了数据库中所有对象的信息。数据字典是一种只读的数据库,它提供了数据库对象的元数据,包括表、索引、...

    oracle数据字典

    Oracle 数据字典是数据库管理系统 Oracle 中的一个重要组成部分,它存储了关于数据库对象(如表、索引、用户、权限等)的信息。数据字典由一系列的预定义表和视图组成,供数据库管理员 (DBA) 和开发人员查询以获取...

    ORACLE数据字典

    ORACLE 数据字典 ORACLE 数据字典是 Oracle 数据库管理和展现数据库系统信息和状态信息的工具,是一系列基表、基于这些基表而衍生的数据字典视图以及存在于系统内存中的动态性能视图的集合。 数据字典概念:数据...

    学习Oralce基本资料 Oracle数据字典

    通过阅读本文,读者将对Oracle数据字典有一个全面的了解,并能掌握如何有效地使用数据字典来管理和优化数据库。 首先,我们来了解Oracle数据字典的基本概念。Oracle数据字典实际上是一组表和视图,它们记录了数据库...

Global site tag (gtag.js) - Google Analytics