实例/instance: 进程+共享内存 用于管理和控制数据库
== 数据库/database: 物理文件的集合 为实例提供数据==,如数据文件,控制文件,参数文件,日志文件等
== 数据库服务器/database server: 实例+数据库==
实例:oracle数据库启动后首先在内存中划分一片空间,并启动一些进程,而内存和进程统称oracle数据库实例。
==连接/connection:连接是从客户端到(服务器)==Oracle 实例的一条物理路径。
会话/session:会话是实例中存在的一个逻辑实体。
连接就是客户端进程到服务端进程的事,会话是用户到登陆数据库
进程/process:指定了一个实例在操作系统级别能同时运行的进程数,包括后台进程与服务器进程。
oracle的体系结构主要分三类
概览: 内存结构
进程结构
存储结构
一.内存结构
(1) SGA: 系统/共享全局区
(Shared Pool/共享池
Buffer Cache/数据库缓冲区高速缓存
Redo Log Buffer/重做日志缓冲区
Large Pool/大池
Java Pool/JAVA池
Stream Pool/流池) 重点1!!!面试
…
(2) PGA: 进程/私有全局区
Private SQL area
Session memory
…
amm 自动内存管理
asm 自动存储管理
具体分析
Shared Pool 实现代码的共享和重用
== Shared pool 作用 ==
(1) 将 sql 语句解析成执行计划
(2) 对执行计划进行执行,读取数据
(3) 将读取到的数据返回给客户端
包含三部分:
1.==库缓存(Library Cache):用于缓存 SQL 语句和执行计划 ==
用于存储SQL语句及相关的解析,执行计划,PL/SQL程序块等
共享SQL区
存放语法分析结果和执行计划等
私有SQL区
存放绑定变量,环境和会话信息等
2.数据字典缓存(Data Dictionary Cache)
存放数据字典信息,包括表、视图等对象的结构信息,用户以及对象权限信息,按行(row)存储,所以也叫Row Cache
3.结果集(Result Cache)
缓存查询的结果,可以在服务器端缓存,也可以在客户端缓存
内存结构和进程结构
Database Buffer Cache
服务器进程,针对每一个连接启动一个服务器进程
数据在buffer c