当用户发出一条SQL语句时,首先由服务器进程对用户的SQL语句进行语法分析并执行,然后将数据从数据文件读入到系统数据的缓冲区,修改后的数据由服务器进程回写到数据文件中。按照系统对于内存的使用方法的不同,Oracle数据库的内存可以分为系统全局区(SGA)和程序全局区(PGA)。
Oracle在内存中存储下列信息:
● 执行的程序代码
● 连接的会话信息
● 程序执行期间所需数据和共享信息
● 存储在外存储上的缓冲信息
Oracle具有下列基本的内存结构:
● SGA
● PGA
● 排序区
● 软件代码区
● 用户存储正在执行的或者可以执行的程序代码
Oracle系统程序是可共享的,以致多个Oracle用户可以存取它,而不需要在内存存有多个副本。用户进程 可以共享也可以不共享。
查看PGA
查看SGA
数据字典
数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的,比如一个创建者信息、创建时间信息、所属表空间信息、用户访问权限信息等。数据字典的所有者是SYS用户,其数据字典表和数据字典视图都被保存保存在SYSTEM表空间中。其主要用途为:
● Oracle通过查询数据字典表或者数据字典视图来获取有关用用户、方案对象、对象的定义信息以及其他存储结构的信息,以便确认权限、方案对象的存在性和正确性。