oracle 的SGA与PGA分析
oracle 的实例可以说是由内存和很多的进程组成的,这里的内存实际上是指SGA(system global area),严格意义上来说PGA(program global area)不属于实例的一部分。
SGA 系统全局区 由所有服务进程和后台进程共享,PGA为比较私有的区域,每一个用户会话进程都会有自己的PGA,这块区域不能被其他用户进程所访问。由每个服务进程、后台进程专有。
Database buffer cache 这块区域对数据库对sql处理的性能有很大的影响,它缓存了从磁盘上检索的数据块。是ORACLE执行SQL的工作区域。在更新数据的时候,用户的会话不直接更新磁盘上的数据,包含关键数据的数据块首先要复制到这一区域,所有的数据库更改首先应用到缓存在这一区域的数据块上,此后数据块将在内存区域保留一段时间, 直至其被其他数据块缓存占用。理想情况下包含频繁访问的数据块都会缓存在这一区域。比如用户进程提交上来一个查询的sql,数据库为了执行这个查询sql会话的进程将扫描buffer cache 里相关的数据块,如果找到了就会发生一次缓存命中,假设缓存区没有相关数据块,oracle将首先包含相关行的数据从磁盘里检索出来,读取到这一区域,然后将结果才返回用户。如果用户发过来的是update等sql,如果buffer cache存在所涉及的数据块,update语句将首先在这以区域进行数据更新,然后将数据写到磁盘中。所以说buffer cache区域的大小直接影响了sql的执行效率。如果buffer cache区域大小设置得当,缓存命中可以达到90%以上。缓存命中率可以再AWR报告中查看。如果命中率很高但是空间很小,这样就会大量的去读写磁盘,影响I/O。直接影响数据库的性能。
Redo log buffer 日志缓冲区。日志缓冲区相对来说是比较小的,他的大小在数据库实例启动时被固定,不能实现自动管理。主要作用是用来记录数据库的每一次的更改,每当数据块发生变化后都被记录在日志离,会话进程不会将日志直接写到磁盘上,否则执行DDL操作的时候,会话就必须等待磁盘读写完成。会话日志先写到 redo log buffer 中当达到一定的数量与状态后,写到磁盘上。这块区域只有几M的空间,默认有oracle确认,如果过大,对性能也会产生极大的影响。如果过大,在DDL语句commit 时,需要写入的内容更多,在发出完成提交消息以及会话工作恢复之前,需要耗费更长的时间。所以这一区域一般由oracle默认分配。
share pool 共享池是SGA里可以说的最复杂的一块区域,缓存了各用户间可共享的各种结构。库缓存,数据字典缓存,PL/SQL区等
Large pool:一个可选的区域,用来缓存大的I/O请求,以支持并行查询、共享服务器模式以及某些备份操作。值得注意的是大池的大小对性能几乎没有影响。这块区域一般由oracle自动管理
Java pool:只有应用程 序需要在数据库中运行JAVA存储过程时才需要JAVA池。
Streams pool:比较高端,供oracle流使用,这里就不做介绍了
sort area:排序区,当用户需要对某些数据进行排序时,据库系统会将需要排序的数据保存到PGA一个排序区内。然后再在这个排序区内对这些数据进行排序。如需要排序的数据排序区能够容纳这些数据,排序会保存排序后的数据。由于系统从内存中读取数据比从硬盘中读取数据的速度要快几千倍,为此如果这个数据排序与读取的操作都能够在内存中完成,无疑可以在很大程度上提高数据库排序与访问的性能。如果这个排序的操作都能够在内存中完成,显然这是很理想的。但是如果PGA区中的排序区容量不够,不能够容纳排序后的数据,此时,系统会从硬盘中获取一个空间,用来保存这需要排序的数据。此时排序的效率就会降低许多。为此在数据库管理中,如果发现用户的很多操作都需要用到排序,那么用户会设置比较大的排序区,可以提高用户访问数据的效率。
USER SESSON DATA:会话区,一般不需要维护大小,会话区内保存了会话所具有的权限、角色、性能统计等信息,用户进程与数据库建立会话时,系统会将这个用户的相关权限查询出来,然后保存在这个会话区内。如此的话,用户进程在访问数据时,系统就会核对会话区内的用户权限信息,看看其是否具有相关的访问权限。
STACK SPACE:堆栈区还保存着会话变量、SQL语句运行时的内存结构等重要的信息。有时候为了提高SQL语句的重用性,会在语句中使用绑定变量。简单的说,就是SQL语句可以接受用户传入的变量。从而用户只需要输入不同的变量值,就可以满足不同的查询需求。可以大大提高语句的执行效率
CURSOR STATE:当运行使用游标的语句时,Oracle数据库系统会在程序缓存区中间为其分配一块区域。这块区域就叫做游标区。 游标区是一个动态的区域。当用户执行游标语句时,系统就会在这个游标区内创建一个区域。当关闭游标时,这个区域就会被释放。
oracle 的SGA与PGA分析相关推荐
- oracle中pga指什么,oracle学习SGA跟PGA理解
SGA:SystemGlobal Area是OracleInstance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:数据库缓冲区.日志缓冲区.共享池,还可能包含:大池,JAVA ...
- oracle查询sga以及pga的大小,SGA/PGA的设置与调整
SGA/PGA的设置与调整 2013-04-10 SGA是用于存储数据库信息的内存区,该信息为数据库进程所共享.它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际 ...
- oracle中查看pga大小,oracle调整sga、pga大小
展开 修改sga大小 1-1查看当前sga大小 SQL> show parameter sga 1-2修改sga_max_size为24G SQL> alter system set sg ...
- oracle调整sga、pga大小
修改sga大小 1-1查看当前sga大小 SQL> show parameter sga 1-2修改sga_max_size为24G SQL> alter system set sga_m ...
- Oracle 调整SGA、PGA大小
SQL> show parameter sga; SQL> alter system set sga_max_size=4096M scope=spfile; System altered ...
- oracle sga pga mysql_修改Oracle数据库SGA和PGA大小
SGA的大小:一般物理内存20%用作操作系统保留,其他80%用于数据库. SGA普通数据库可以分配40%-60%之间,PGA可以分配20%-40%之间. 1.以dba身份登录 并查看SGA信息: SQ ...
- oracle的sga和pga大小设置
racle官方文档推荐: MEMORY_TARGET=物理内存 x 80% MEMORY_MAX_SIZE=物理内存 x 80% 对于OLTP系统: SGA_TARGET=(物理内存 x 80%) x ...
- Oracle sga和pga的分配
今天我们来说下Oracle 中sga和pga的分配: modify sga alter system set sga_target=1024m scope=spfile; alter system s ...
- oracle数据库内存结构pga/sga/uga做比较分析
oracle数据库的内存结构比较复杂,下面对pga/sga/uga做比较分析. 1. sga组成: database buffer cache:包括 default pool,keep pool,re ...
最新文章
- linux常见基本命令
- pomelo 分布式聊天入门客户端demo(c#)
- SQL中条件和比较关键字Case的使用方法(case的结果就是得到了一个值)
- java arraylist用法_Java入门系列:实例讲解ArrayList用法
- Redis详解(五)——Redis多实例
- jar命令成功完成 java -jar 命令却提示“没有主清单属性”!
- Python使用Reportlab处理PDF数据 - 段落
- DNS与NS、NS记录
- Failed to install ISKernel Files,make sure you have appropriate privileges on this machine
- 软件测试——课程感想
- Maven华为云仓库
- css !important用法以及CSS样式使用优先级判断
- AI行业强者愈强?Tesra超算网络助力中小AI开发企业!
- Swift中的UIKit重力学(一)
- 求求你!不要在网上乱拷贝代码了
- 别再用中国人的方法背英语单词了,英国人是这样背的!
- python:用OLS 求企业的净利润年平均增长率
- H3C交换机的irf配置
- e4a数据库mysql中间件_e4a mysql
- 平安京服务器维护不能打字,决战!平安京|萌新入坑指南 新手注意六大准则
热门文章
- Command python setup.py egg_info failed with error code 1 in C:\Users\ADMINI~1\AppData\Local\Temp\
- 【网络安全】一款针对Flutter的逆向工程分析工具
- json对象(json对象和json数组)
- 电影点评系统论文java_电影评论网站系统毕业设计(论文)论文参考.doc
- 右斜杠 java chr_PHP(5.3+)中的\(反斜杠)有什么作用?
- dede后台-系统基本参数无法保存中文/显示空白
- 【已解决】rgss202e.dll与电脑不兼容怎么办?
- RocketMQ中的消息类型种类(二)
- 前端性能优化 雅虎军规35条
- sparksql2.0整理-自用