OCP/OCA认证考试指南全册读书笔记 第一章 Oracle Database 11g体系结构概述
2012-10-16 19:54
302 查看
1.4 实例内存结构
Oracle实例由称为系统全局区(SGA)的共享内存块以及大量的后台进程构成,SGA至少包含三种数据结构
数据库缓存区缓存
日志缓冲区
共享池
还可能包含
大池
Java池
流池
用户会话还需要服务器端的内存。此内存不共享,也称为程序全局区域或PGA,每个会话都有自己专用的PGA。
1.4.1 数据库缓冲区缓存
数据库缓冲区缓存是Oracle用来执行SQL的工作区域
在更新数据时,用户的会话不直接更新磁盘上的数据。包含关键数据的数据块首先复制到数据库缓冲区缓存。更改(如插入新行、删除或修改现有行)应用于数据缓冲区缓存中这些数据块副本。此后,块将在缓存中保留一段时间,直至其占有的缓冲区需要缓存另一块为止。
在查询数据时,数据也要经过缓存。会话计算出哪些块包含关键的行,并将它们复制到数据库缓冲区缓存(如果那里还未存在)。此后,相关行传输到会话的PGA作进一步处理。此后块会在数据库缓冲区缓存中保留一段时间。
数据文件的格式被设置为固定大小的块。表行和其他数据对象(如索引键),存储在这些块中。数据库缓冲区缓存的格式被设置为内存缓冲区,每个可以容纳一个块,与块不同,行的长度是变化的,行的长度取决于为表定义的列的数量(不管列是否真的包含内容,也不考虑包含什么内容)。根据块的大小(由DBA选择)和行的大小(取决于表设计和使用)。每个块中可能有多个行,也可能有一个行延伸到多个块中。
理想状况下,包含频繁访问的数据的所有块将位于数据库缓冲区缓存中,从而最大程度地减少磁盘I/O的需要。
为了执行用户进程提交的SELECT语句,会话的服务器进程将扫描缓冲区缓存中包含相关行的数据块。如果找到了,就会发生一次缓冲区缓存命中。在本例中,假定缓冲区缓存未命中,服务器进程在将结果发送给用户进程(格式化数据后显示给销售代表)之前,会将包含相关行的数据从数据文件读入缓冲区。
然后,用户进程将UPDATE和COMMIT语句提交给服务器进程执行。在执行UPDATE语句时,如果包含行的块在缓存中仍然可用,那么在缓冲区缓存中奖更新行。在本例中,缓冲区缓存命中率为50%:对缓存中的块有两次访问,但只有一次从磁盘读取块。如果数据库缓冲区缓存调整得当,缓存命中率将在90%以上。
注意,缓冲区的更新频率(或COMMIT的数量)与何时写回数据文件没有任何关系。对数据文件执行写操作由数据库写入器后台进程完成。
数据库缓冲区缓存的大小会对性能产生至关重要的影响。
数据库缓冲区缓存在实例启动时分配,从9i开始,可以随时将其调大或调小。可以采用手动方式重调,也可以根据工作负荷(从10g版本开始)自动重调大小(如果启用了自动化机制)
Oracle实例由称为系统全局区(SGA)的共享内存块以及大量的后台进程构成,SGA至少包含三种数据结构
数据库缓存区缓存
日志缓冲区
共享池
还可能包含
大池
Java池
流池
用户会话还需要服务器端的内存。此内存不共享,也称为程序全局区域或PGA,每个会话都有自己专用的PGA。
1.4.1 数据库缓冲区缓存
数据库缓冲区缓存是Oracle用来执行SQL的工作区域
在更新数据时,用户的会话不直接更新磁盘上的数据。包含关键数据的数据块首先复制到数据库缓冲区缓存。更改(如插入新行、删除或修改现有行)应用于数据缓冲区缓存中这些数据块副本。此后,块将在缓存中保留一段时间,直至其占有的缓冲区需要缓存另一块为止。
在查询数据时,数据也要经过缓存。会话计算出哪些块包含关键的行,并将它们复制到数据库缓冲区缓存(如果那里还未存在)。此后,相关行传输到会话的PGA作进一步处理。此后块会在数据库缓冲区缓存中保留一段时间。
数据文件的格式被设置为固定大小的块。表行和其他数据对象(如索引键),存储在这些块中。数据库缓冲区缓存的格式被设置为内存缓冲区,每个可以容纳一个块,与块不同,行的长度是变化的,行的长度取决于为表定义的列的数量(不管列是否真的包含内容,也不考虑包含什么内容)。根据块的大小(由DBA选择)和行的大小(取决于表设计和使用)。每个块中可能有多个行,也可能有一个行延伸到多个块中。
理想状况下,包含频繁访问的数据的所有块将位于数据库缓冲区缓存中,从而最大程度地减少磁盘I/O的需要。
select customer_id,customer_name from customers; update customers set customer_name='Sid' where customer_id=100; commit
为了执行用户进程提交的SELECT语句,会话的服务器进程将扫描缓冲区缓存中包含相关行的数据块。如果找到了,就会发生一次缓冲区缓存命中。在本例中,假定缓冲区缓存未命中,服务器进程在将结果发送给用户进程(格式化数据后显示给销售代表)之前,会将包含相关行的数据从数据文件读入缓冲区。
然后,用户进程将UPDATE和COMMIT语句提交给服务器进程执行。在执行UPDATE语句时,如果包含行的块在缓存中仍然可用,那么在缓冲区缓存中奖更新行。在本例中,缓冲区缓存命中率为50%:对缓存中的块有两次访问,但只有一次从磁盘读取块。如果数据库缓冲区缓存调整得当,缓存命中率将在90%以上。
注意,缓冲区的更新频率(或COMMIT的数量)与何时写回数据文件没有任何关系。对数据文件执行写操作由数据库写入器后台进程完成。
数据库缓冲区缓存的大小会对性能产生至关重要的影响。
数据库缓冲区缓存在实例启动时分配,从9i开始,可以随时将其调大或调小。可以采用手动方式重调,也可以根据工作负荷(从10g版本开始)自动重调大小(如果启用了自动化机制)
相关文章推荐
- OCP/OCA认证考试指南全册读书笔记 第一章 Oracle Database 11g体系结构概述
- 第一章 Oralce 11g 概述
- ORACLE 11g体系结构概述
- Oracle Database体系结构概述
- 《Oracle从入门到精通》读书笔记第一章 oracle 11g 概述
- [Oracle]Oracle Database 11g 基础教程 第一章
- 第一章 Oracle Database 11g 体系结构
- (转载)第一章 MIPS CPU 体系结构概述
- 《电磁兼容的印制电路设计》-第一章 概述
- TCP,IP详解,卷一:协议学习笔记之第一章概述
- 【Spring学习笔记】之【第一章Spring 概述】
- oracle database 9i/10g/11g 及补丁(patch)下载地址
- Oracle database 11g release2发布
- 第一章:防火墙的概述
- JAVA第一章 概述一:JAVA发展史---------------(Make A little EvProgresseryday )
- 计算机网络第一章概述(1)
- 面向服务的体系结构概述:第四部分(转)
- 第一章 面向对象及软件建模概述
- 《TC/IP详解:卷I》读书笔记--第一章 概述
- oracle体系结构-进程结构 概述