【转】Oracle的内存结构和数据字典

上一篇 / 下一篇  2012-10-17 20:13:45 / 个人分类:测试的分类

  当用户发出一条SQL语句时,首先由服务器进程对用户的SQL语句进行语法分析并执行,然后将数据从数据文件读入到系统数据的缓冲区,修改后的数据由服务器进程回写到数据文件中。按照系统对于内存的使用方法的不同,Oracle数据库的内存可以分为系统全局区(SGA)和程序全局区(PGA)。

  Oracle在内存中存储下列信息:

  ● 执行的程序代码

  ● 连接的会话信息

  ● 程序执行期间所需数据和共享信息

  ● 存储在外存储上的缓冲信息

  Oracle具有下列基本的内存结构:

  ● SGA

  ● PGA

  ● 排序区

  ● 软件代码区

  ● 用户存储正在执行的或者可以执行的程序代码

  Oracle系统程序是可共享的,以致多个Oracle用户可以存取它,而不需要在内存存有多个副本。用户进程 可以共享也可以不共享。

  查看PGA

  查看SGA

  数据字典

  数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的,比如一个创建者信息、创建时间信息、所属表空间信息、用户访问权限信息等。数据字典的所有者是SYS用户,其数据字典表和数据字典视图都被保存保存在SYSTEM表空间中。其主要用途为:

  ● Oracle通过查询数据字典表或者数据字典视图来获取有关用用户、方案对象、对象的定义信息以及其他存储结构的信息,以便确认权限、方案对象的存在性和正确性。

 ● 在每次执行DDL语句修改方案和对象后,Oracle都在数据字典中记录下所作的修改。用户可以从数据字典的只读视图中,获取各种与方案对象和对象有关的信息。

  ● DBA可以从数据字典的动态性能视图中,监视历程的运行状态,为性调整提供依据。

  Oracle中的数据字典又分为静态和动态

  静态数据字典

  这类数据字典主要由表和视图组成。数据字典中的表式不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典的视图分为三类,它们分别由三个前缀构成:USER视图、ALL视图、DBA视图。这三者的关系式权限内容逐渐缩小的关系。

  USER视图包含了该用户模式下所有对象的信息。

  ALL视图中记录了属于该用户模式的所有对象信息,以及该用户可以访问的属于其他模式中的对象信息

  DBA视图记录了去阿奴的数据库对象

  动态性能表和动态性能视图

  在例程的运行过程中,oracle会在数据字典中维护一系列虚拟的表,在其中记录与数据库活动相关的性能统计信息,这些表被称为动态性能表。这 些虚拟的表不是固定的表,即在例程启动时被创建,并将其向其中添加信息,而当例程消亡时,这些表也就被删除了。动态性能视图属于SYS用户,Oracle 自动在动态性能表上创建了一些视图,及动态性能视图。所有动态性能视图都已V_$开头。Oracle为这些视图创建了公用同义词。这些同义词都已V$开 头,因此动态性能视图也被成为“V$_视图”。

  各类数据字典成千上万,不可能全部记住,那么好了,通过命令行、OEM方式查询这些信息


TAG:

 

评分:0

我来说两句

Open Toolbar