北京邮电大学软件工程研究生的课程---数据库设计开发-42

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

cache
PMON SMON DBWR LGWR CKPT Others
内存 结构
后台 进程
• ORACLE实例是指有自己的内存结构和相关的服务 器进程及后台进程的DBMS。
4.2.1.1 内存结构
4.2.1.2 进程
北京邮电大学软件学院
郭文明 2003.06
郭文明 2003.06.05
4.2.1.1 ORACLE內存结构
郭文明 2003.06.05
4.2 ORACLE数据库实例管理
• Oracle服务器就是数据库管理系统(DBMS),由 数据库(Oracle database)和实例(Oracle instance)组成。
• 实例是一系列复杂的内存结构和操作系统进程, 它为Oracle客户提供所期望的不同程度的服务。 一个实例只能打开一个数据库,或者说一个数 据库被唯一的一个实例装载。
• 当实例被创建时,分配SGA;当实例关闭时, 释放SGA。
北京邮电大学软件学院
郭文明 2003.06
郭文明 2003.06.05
4.2.1.1 ORACLE內存结构
• SGA组成如下:
–共享池。 –数据库缓冲区高速缓存。 –重做日志缓冲区。
另外oracle9i还有Java pool,8i有Java虚 拟机,解释Java;Java pool是利用数据库技 术解释Java.
共享池的大小取决于init.ora文件参数 SHARED_POOL_SIZE,它是以字节为单位的。ORACLE 9i可以通过ALTER SYSTEM SET SHARED_POOL_SIZE动 态设置。
北京邮电大学软件学院
郭文明 2003.06
郭文明 2003.06.05
4.2.1 ORACLE数据库实例组成
用户 进程
服务器 进程
PGA
实例
Shared pool
SGA
Library
cache
Database Redo log
Data Dictionary Buffer cache Buffer cache
4.2.1 实பைடு நூலகம்组成
4.2.2 实例创建
4.2.3 监控实例
北京邮电大学软件学院
郭文明 2003.06
郭文明 2003.06.05
4.2.1 ORACLE数据库实例组成
• 实例中每一个进程都有各自的一个内存块,该内存块 用于保存私有变量、地址堆栈和其他运行时的信息。
• 进程间使用公共共享区并在公共共享区内完成它们的 工作。公共共享区是能够在同一时间内被不同程序和 不同进程读写的一块内存区。该内存块称为系统全局 区(SGA)。因为SGA驻留在一个共享内存段中,所以它 经常被称作共享全局区。
库高速缓存中的专用SQL区可更进一步分为 永久区和运行区。永久区中包含合法的信息, 并可应用于SQL语句的多个执行中,而运行区 中仅包含正在被执行的SQL语句的数据。
北京邮电大学软件学院
郭文明 2003.06
郭文明 2003.06.05
4.2.1.1 ORACLE內存结构
–共享池:
字典高速缓存含有RDBMS引擎分析SQL语句所使用 的数据字典信息。在这个区域中含有段信息、安全 性、访问权限和在可用的自由存储空间等信息。
4.2.1.1 ORACLE內存结构
–共享池:
对于使用以前缓存的SQL语句,它必须在所 有方面都与缓存版本完全相同,包括标点符号 和字母的大小写。
库高速缓存包括共享和专用SQL区。共享 SQL区包括SQL语句语法分析树和执行路径;专 用SQL区存储特定的会话信息,一个用户会话 能够一次打开的专用SQL区的数量由init.ora 参数OPEN_CURSORS决定。
北京邮电大学软件学院
郭文明 2003.06
郭文明 2003.06.05
4.2.1.1 ORACLE內存结构
• 系统全局区:系统全局区是实例的主要部 分。它含有数据维护、SQL语句分析与重做 缓存所必须的所有内存结构。
• 系统全局区的数据是共享的,也就是说, 多个进程可以在同一时间对SGA中的数据进 行访问和修改。所有数据库操作都使用包 含在SGA中某点上的结构。
oracle9i的SGA可以通过SGA_MAX_SIZE被动 态的设置大小,8i不能动态设置。
北京邮电大学软件学院
郭文明 2003.06
郭文明 2003.06.05
4.2.1.1 ORACLE內存结构
–共享池:共享池包括库高速缓存、数据字典 高速缓存和服务器控制结构(例如数据库字 符集)。 参见下图
• 后台进程就像数据库的手,是直接处理数据库的组件; SGA就像大脑,在必要时间接地调度手处理它们的信息 与存储检索。SGA参与发生在数据库中全部的信息和服 务器的处理。
• 单用户的Oracle配置(Personal Oracle Lite),不使 用多进程执行数据库的功能。相反,所有的数据库功 能由一个Oracle进程完成。由于这个原因,单用户也 称为单进程Oracle。
库高速缓冲
字典高速缓冲 控制结构
共享 专用SQL区 SQL区
永久区 运行区
北京邮电大学软件学院
郭文明 2003.06
郭文明 2003.06.05
4.2.1.1 ORACLE內存结构
–共享池:
库高速缓存存储已提交给RDBMS的SQL语句 文本、分析过的格式与执行计划,以及已被 执行的PL/SQL包头与过程等。数据字典高速 缓存存储用于分析SQL语句的数据字典行。
• ORACLE的内存结构主要有两个内存区域组成:
SGA(System Global Area):系统全局区,是 ORACLE实例的基础,是一个共享区域,存放最 近使用的SQL语句、最近使用的数据、最近使用 的数据字典等信息,供各个进程调用。
PGA(Program Global Area):程序全局区,该 区域是一非共享区域,存放会话、排序、游标、 主变量等信息,被服务器进程调用,保证谁的 请求处理结果给谁,谁的排序给谁,用户声明 的、打开的、使用的、关闭的游标是私有的, 用户的主变量不被其他用户干扰。
Oracle服务器用库高速缓存来提高执行 SQL语句的性能。当一条SQL语句提交时,服 务器首先查找高速缓存,查看相同的语句是 否已被提交或缓存过。如果有,Oracle使用 存储的语法分析树和执行路径来执行该语句, 使用存储代码可以获得明显的性能提高。
北京邮电大学软件学院
郭文明 2003.06
郭文明 2003.06.05
相关文档
最新文档