姜运娱乐|「AWR报告」如何看懂awr中的报告摘要ReportSummary( 二 )


5、DBCache(数据库缓存)
DBCACHE是以数据块为单位组织的缓冲区 , 数据库刚刚启动的时候 , DBCACHE中几乎没有用户数据的缓冲 , 当会话访问数据库中的表或索引时 , 首先会检查DBCACHE中是否存在该数据 , 如果不存在 , 就会从数据文件中读取该数据块到DBCACHE中 , 然后再从DBCACHE中读取该数据 。 DBCache的命中率越高 , 访问性能就越好 。
6、SharedPool(共享池)
Sharedpool是SGA中的一部分 , 由于它是SGA的一部分 , 这意味着它可以被所有的进程所访问 , SharedPool当中主要包含了2部分:librarycache和dictionarycache 。 sga的sharedpool=库缓存(librarycache)+数据字典缓存(dictionarycache)+LargePool(大池)+JavaPool(java池)+StreamsPool(流池)
姜运娱乐|「AWR报告」如何看懂awr中的报告摘要ReportSummary
文章图片
LargePool(大池)
大池为可选的内存区域 , 供一次性大量的内存分配使用 。
例如:a.共享服务器(sharedserver)及oracleXA接口(当一个事物与多个数据库交互时使用的接口);b.I/0服务进程;c.备份与恢复操作原理 , 如果largepool能为共享服务器 , oracleXA , 或并行查询缓冲区(parallelquerybuffer)分配绘画内存 , sharedpool就能专注于为共享sql区提供内存 , 从而避免sharedpool可用共享变小而性能降低 , 而至于备份 , 恢复通常需要数百kb的内存 , 此时largepool更能满足此类大内存需求 。
JavaPool(java池)
SGA内的Java池(JavaPool)是供各会话内运行的Java代码及JVM内的数据使用的 。 Java池是SGA的可选区域 , 用来为Java命令解析提供内存 。 只有在安装和使用JAVA时才需要JAVA池 。 Java池的大小由JAVA_POOL_SIZE初始化参数来决定 。
StreamsPool(数据流池)
在数据库中 , 管理员可以在SGA内配置一个被称为数据流池(StreamsPool)的内存池供Oracle数据流(Stream)分配内存 。 管理员需要使用STREAMS_POOL_SIZE初始化参数设定数据流池的容量(单位为字节) 。
7、LogBuffer(日志缓冲区)
数据库在运行过程中 , 不可避免的要遇到各种能够导致数据块库损坏的情况 。 比如突然断电、oracle或者操作系统的程序bug导致数据库内部逻辑结构损坏、磁盘介质损坏等 , 都有可能造成数据库崩溃 , 从而导致数据丢失的现象发生 。 为了修复这些状况所导致的数据丢失现象 , oracle引入了日志缓冲区和日志文件的概念 。 为了临时存放所产生的日志信息 , oracle在SGA中开辟了一块内存区域 。 这块区域就叫做日志缓冲区(logbuffer) , 当满足一定条件以后 , oracle会使用名为LGWR的后台进程将logbuffer中的日志信息写入联机日志文件里 。
姜运娱乐|「AWR报告」如何看懂awr中的报告摘要ReportSummary
文章图片
看似简单的报告摘要 , 却涵盖了这么多的知识点 , 你get到没有呢?
想了解更多精彩内容 , 快来关注出彩职场人


推荐阅读