您的位置:首页 > 数据库 > Oracle

ORACLE的体系结构

2015-08-06 15:03 176 查看

ORACLE的工作原理

1 在数据库服务器上启动ORACLE实例。

2 应用程序在客户端的用户进程中运行,启用ORACLE网络服务驱动器与服务器建立连接。

3 服务器运行ORACLE网络服务驱动器,建立专用的服务器进程执行用户进程。

4 客户端提交事务。

5 服务器进程获取SQL语句并检查共享池中是否有相似的SQL语句,

如果有,服务器进程再检查用户的访问权限,否则分配新的SQL共享区分析并执行SQL语句。

6 服务器从实际的数据文件或SGA中取得所需数据。

7 服务器进程在SGA中更新数据,进程DBWN在特定条件下将更新过的数据块写回磁盘,进程LGWR在重做日志文件中记录事务。

8 如果事务成功,服务器进程发送消息到应用程序中。

========================================================================================================================

ORALCE服务器

1 ORALCE服务器是由ORALCE数据库和ORACLE实例组成。

2 ORALCE数据库是一个数据的集合, 存放在数据文件里,该集合被视为一个逻辑单元。

3 ORALCE实例由管理数据库的后台进程和内存结构所构成。

========================================================================================================================

ORACLE实例

ORACLE实例是后台进程和内存结构的集合。

启动ORACLE实例的过程 ———— 分配内存,启动后台进程

ORACLE实例的内存包括SGA和PGA

当启动实例的时候分配SGA,当启动服务器进程的时候分配PGA

一般情况下,SGA:PGA = 8:1 分配内存

ORACLE实例的后台进程包括SMON,PMON,DBWR,LGWR,CKPT

========================================================================================================================

SGA(SYSTEM GLOBAL AREA)系统全局区

1 数据区信息存储于SGA,由多个数据库进程共享。

2 SGA包括:共享池,数据缓冲区,日志缓冲区,Large池,Java池,Steam池

3 共享池是对SQL,PL/SQL程序进行语法分析,编译,执行的内存区域。

如果执行SELECT * FROM EMP 语句时,会对SQL语句进行语法分析>编译>生成执行计划>运行执行计划等,

这些操作都是在共享池中完成,如果再次执行SELECT * FROM EMP 语句时,会在共享池中查找是否有相同的SQL,如果

5、SGA(System Global Area): 系统全局区

i0、数据库信息存储于SGA,由多个数据库进程共享。

i1、SGA包括:共享池、数据缓冲区、日志缓冲区、Large池、Java池、Stream池。

i2、共享池

1)、共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域。

如在执行SELECT * FROM emp语句时,会对sql语句进行语法分析->编译->生成执行计划->运行执行计划等,这些操作都在共享池中完成;如果再次执行SELECT * FROM emp语句时,会在共享池中查找是否有相同的sql,如果存在则省去编译、生成执行计划操作步骤而是直接运行执行计划,因此养成良好的编码习惯对于提高oracle执行效率非常有帮助。

2)、共享池由库缓存和数据字典缓存组成。

3)、共享池的大小直接影响数据库的性能。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: