1.1.1 Oracle Server 的基本结构
1)oracle server:database + instance
2)database:data file、control file、redolog file
3)instance: an instance access a database
4)oracle memory: sga + pga
5)instance:sga + backgroud process
1.1.2 系统全局区 SGA:
1)在一个 instance 只有一个 sga
2)sga 为所有 session 共享,随着 instance 启动而分配
3)instance down ,sga 被释放
1.2 SGA 的基本组件
1)shared pool
共享池是对 SQL、PL/SQL 程序进行语法分析、编译、执行的内存区域。
共享池由库缓存(library cache),和数据字典缓存(data dictionary cache)以及结果缓存(result cache)等组成。
共享池的大小直接影响数据库的性能。
关于 shared pool 中的几个概念
①library cache:
sql 和 plsql 的解析场所,存放 sql/plsql 语句代码,以及它们的执行计划。以备其他用户共享
②data dictionary cache
存放重要的数据字典信息,以备其他用户共享使用
③server result cache:
存放服务器端的 SQL 结果集及 PL/SQL 函数返回值
④User Global Area (UGA):
共享服务器连接模式下如果没有配置 large pool,则 UGA 属于 SGA 的 shared pool, 专用连接模式时 UGA 属于 PGA
2)database buffer cache(PPT-II-328)
用于存储从磁盘数据文件中读入的数据,为所有用户共享。
服务器进程(server process)负责将数据文件的数据从磁盘读入到数据缓冲区中,当后续的请求需要这些数据时如果在内存中找
到,则不需要再从磁盘读取。
数据缓冲区中被修改的数据块(脏块)由后台进程 DBWR 将其写入磁盘。
数据缓冲区的大小对数据库的读取速度有直接的影响。
要弄明白 Database Buffer Cache 中的几个 cache 概念:
① Buffer pool=(default pool)+(nodefault pool)
评论