ORACLE具有下列基本的内存结构:
软件代码区
系统全局区,包括数据库缓冲存储区、日志缓冲区和共享池.
程序全局区,包括栈区和数据区.
排序区
软件代码区
用于存储正在执行的或可以执行的程序代码。
软件区是只读,可安装成共享或非共享。ORACLE系统程序是可共享的,以致多个ORACLE用户可存取它,而不需要在内存有多个副本。用户程序可以共享也可以不共享。
系统全局区
为一组由ORACLE分配的共享的内存结构,可包含一个数据库实例的数据或控制信息。如果多个用户同时连接到同一实例时,在实例的SGA中数据可为多个用户所共享,所以又称为共享全局区。当实例起动时,SGA的存储自动地被分配;当实例关闭时,该存储被回收。所有连接到多进程数据库实例的全部用户可自动地被分配;当实例关闭时,该存储被回收。所有连接到多进程数据库实例的全部用户可使用其SGA中的信息,但仅仅有几个进程可写入信息。在SGA中存储信息将内存划分成几个区:数据库缓冲存储区、日志缓冲区、共享池、请求和响应队列、数据字典存储区和其它各种信息。
程序全局区
PGA是一个内存区,包含单个进程的数据和控制信息,所以又称为进程全局区(PROCESS GLOBAL AREA)。
排序区
排序需要内存空间,ORACLE利用该内存排序数据,这部分空间称为排序区。排序区存在于请求排序的用户进程的内存中,该空间的大小为适就排序数据量的大小,可增长,但受初始化参数SORT-AREA-SIZER所限制。
2. ORACLE的配置方案
所有连接到ORACLE的用户必须执行两个代码模块可存取一个ORACLE数据库实例:
应用或ORACLE工具:一数据库用户执行一数据库应用或一个ORACLE工具,可向ORACLE数据库发出SQL语句。
ORACLE服务器程序:负责解释和处理应用中的SQL语句。