SGA主要有哪些部分,主要作用是什么,如何查询当前SGA各个组件当前大小?
Database Buffer Cache: Oracle实例SGA内存区域至关重要的一块内存区域。主要用于提升数据库的访问性能。
脏数据区: 指数据库中的数据被修改后尚未写入到硬盘中。在数据库中,仅写入到磁盘中的数据才会被称为干净数据。因为数据库缓存区的数据极有可能因为各种原因无法写入到硬盘中,造成数据丢失从而导致数据库出现数据不一致的问题。
自由区: 指数据库中的干净区域,没有被使用过的区域。自由区中,数据库可以随时向该区域写入数据,通常从硬盘中读入的数据会放入干净区中。
保留区: 涉及到修改或正在操作的区域,或有其他用途的区域。
Shared Pool: 共享池缓存。主要用来存储可以被不同用户共享的重复SQL语句、数据字典中的信息
Libray Cache 主要用来缓存用户执行过的SQL语句及PL/SQL的相关信息,缓存的主要信息包含用户执行过的SQL语句文本、执行结果及执行计划。位于该缓存区的SQL语句或执行计划同时会共享给其他不同的用户,当其他用户在数据库中执行同样的SQL语句或执行计划时,位于 Libray Cache 缓存区的执行结果将返回给其他用户而无需重新在数据库中执行一次相同的SQL语句
Data Dictionary Cache: 该部分缓存区主要缓存数据字典相关的一些信息,例如,用户账户数据、数据表及索引、及权限等信息。使用数据字典缓存,可以缩短数据的解析响应时间。
Redo Log Buffer: 重做日志缓冲区,主要用来记录数据库发生的事务变更。
Java Pool: java池,数据库中运行java代码时需要使用该内存区域
Large Pool: 大池,主要用于缓存数据库中的大型I/O请求。
Stream Pool: 流池。数据库中的数据可以通过 流 的方式共享。使用Oracle流,共享信息的每个单元称为一条消息,可以在流中共享一条条消息。
如何查询当前SGA各个组件当前大小?
可以在sqlplus或其它plsql等工具查询以下select语句
set linesize 200 --sqlplus下才需要设置
column name format a60 --sqlplus下才需要设置
select name, bytes/1024/1024/1024 as Gbytes from v$sgainfo;
SGA主要有哪些部分,主要作用是什么,如何查询当前SGA各个组件当前大小?
本文2024-09-22 20:21:38发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-113130.html