1: Oracle引入复杂体系结构的原因是因为要有效的管理数据,同时需要有效使用计算机系统受限制的系统资源(主要是硬盘)。内存的访问是电子速度,而硬盘的访问速度是机械速度。计算机体系结构中的很多系统都受限于外设的速度。
2: Oracle实例是一种访问数据库的机制,有内存和一些后台进程组成,内存结构称为系统全局区SGA,后台进程有5个是必须的,分别是SMON,PMON,DBWR,LGWR和 CKPT。每个实例只能对应一个数据库,而一个数据库在RAC环境下可以对应多个实例。SGA包括shared pool(library pool,directory cache),database buffer cache,redo log buffer。
3: Oracle数据库是数据的集合,Oracle把这些数据当作完整的单位来处理,是真正的物理存储。有3类操作系统文件组成:
控制文件control files,维护和校验数据库一致性
重做日志文件redo log files,系统崩溃后进行恢复所需记录的变化信息
数据文件data files,数据库中的真正数据
4: Oracle其他关键文件
初始化参数文件parameter files,定义实例的特性,如系统全局区SGA分配,DBWR的个数
密码文件password files,Oracle在没有启动前需要密码文件验证Oralce管理员或操作员启动或停止Oracle实例。
归档日志文件archived log files,是日志文件的脱机备份。
5: 连接Oracle实例,用户启动一个sqlplus(用户进程),在专用连接情况下并且输入的用户名和密码正确,如果登录成功,Oracle会在运行的服务器上创建一个服务器进程。用户进程和服务器进程打交道,服务器进程和Oracle实例打交道。用户进程和Oracle的连接称为会话Session。
6: 连接Oracle服务器的3种方式
(1): 主机方式,用户进程和服务器进程在同一台服务器上,之间的通信通过操作系统的IPC机制进行
(2): 客户端-服务端CS方式,连接通过网络协议TCP/IP完成。
(3): 客户端-应用服务器-服务器
7: 服务器进程
Oracle建立服务器进程的同时分配一块私有的内存区PGA,在专用服务器进程的配置情况下,包括一下4个结构:
(1)排序区sort area,处理SQL语句的排序
(2)游标状态区cursor state,指示会话当前所使用的SQL语句的处理状态
(3)会话信息区session information,会话的用户权限和优化统计信息
(4)堆栈区stack space,其他的会话变量
如果是共享服务器进程的配置,上述结构除了堆栈区外大部分存在于SGA中,存在于large pool或shared pool中。
8: SQL查询语句的执行步骤
(1)编译,
在进行编译时,首先将SQL语句的正文放入共享池sharerd pool的library pool。
首先杂library pool中搜索是否有相同正文的SQL语句,如果没有就进行后续操作。
检查SQL语句语法是否正确。
通过查看数据数据字典来检查表和列的定义。
对所操作的对象加编译锁,以便在编译期间这些对象的定义不发生变化。
检查所引用对象的用户权限。
生成执行该SQL语句所需要的优化的执行计划。
将SQL语句和执行计划装入共享的SQL区。
上面每一步骤的操作如果正确就继续执行,否则返回错误。
(2)执行,
已经获得了执行SQL语句的全部资源和信息,开始执行。
(3)提取数据,
选择所需的数据行,必要时排序,返回客户进程。