本文主要介绍“什么是Oracle数据库的内存结构”。在日常操作中,相信很多人对Oracle数据库的内存结构有所怀疑。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮助大家解答“Oracle数据库的内存结构是什么”的疑惑。接下来,请和边肖一起学习!
每个数据库实例都有两个相关的内存结构——系统全局区(SGA)和程序全局区(PGA)。
系统全局(SGA):一组共享内存结构(称为SGA)。
组件),它包含OracleDB实例的数据和控制信息。SGA由所有服务器进程和后台进程共享。存储在SGA的数据包括缓存的数据块和共享的SQL区域。SGA的大小由参数sga_target.决定
程序全局区(PGA):包含服务器进程或后台进程的数据和控制信息的存储区。职业高尔夫球手协会
服务器进程或后台进程启动时,Oracle数据库创建的非共享内存。服务器对PGA的访问是独占的。每个服务器进程和后台进程都有自己的PGA。PGA的大小由参数pga_aggregate_target.决定
展示了SGA的几个关键组成部分:
共享池:shared pool用于缓存用户之间可以共享的各种结构,例如给定的SQL。
语句分析树和执行计划。
数据库缓冲区高速缓存:buffer cache,从数据库中检索的数据块缓存在这里,数据块由这个内存组件操作,减少了硬盘的IO负担。如果能在这个区域找到用户进程所需的数据,我们称之为缓存命中,高命中率所体现的效果就是操作响应快,这很容易理解,数据库优化中很有必要考虑这点.
在缓冲区缓存中,有以下缓冲区:
(*)KEEP
缓冲池:一种特殊的数据库缓冲缓存,用于将数据块长期保存在内存中。一些经常使用的数据块可以在这里保存比较长的时间,以免每次都从硬盘上获取,从而优化了数据库的性能;
(*)RECYCLE
缓冲池:一种特殊的数据库缓冲缓存,用于从内存中快速回收或删除数据块。与KEEP的反面相比,很容易理解;
(*)nK
缓冲区缓存:几种特殊的数据库缓冲区缓存之一,用于存储大小不同于默认数据库块大小的数据块。注意默认数据块为8K
重做日志缓冲区:log buffer,用于存储有关数据库更改的信息。重做信息将在写入磁盘上的重做日志文件(即重做文件)之前缓存在此处。
大型池,曾用于一些大型流程(如甲骨文。
以及备份和恢复操作)和输入/输出服务器进程。
Java池和流池
至此,“Oracle数据库的内存结构是什么”的研究结束,希望能解决大家的疑惑。理论和实践的结合可以更好的帮助大家学习,所以赶紧试试吧!如果你想继续学习更多的相关知识,请继续关注网站,边肖会继续努力,给大家带来更多实用的文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/67440.html