首页 > 数据库 > 数据库开发技术 > SGA区查询的基本语句
创建实例时,oracle为SGA区分配内存;终止实例时,释放SGA区占用的内存。
SGA区可以分为几个部分:
一、数据高速缓存
保存最近从数据文件中读取的数据块,其中的数据可以被所用的用户共享。由许多大小相等的缓存块组成。这些缓存块分为三类:
脏缓存块:保存的是已经被修改过的缓存块。要被dbwr进程写入数据文件的,以便永久的保留修改的结果。
空闲缓存块:其中没有数据,它在等待被写入数据。
命中缓存块:保存的是最近正在被访问的缓存块。始终被保存在数据高速缓存中,不会被写入数据文件。
Oracle通过两个列表管理:
DIRTY列表保存已经被修改但没有被写入数据文件的脏缓存块。
LRU(Least Recently Used)保存所有空闲缓存块、以及还没有被移入DIRTY中的脏缓存块。
二、重做日志高速缓存
执行Insert,Update,Delete对表进行修改时,或执行Create,alter,drop时,生成重做记录。
大小有LOG_BUFFER初始化参数指定。
查询重做日志缓存的大小
sql> show parameter log_buffer;
查询用户进程等待重做日志缓存的次数
sql> select name,value from v$sysstat where name='redo buffer allocation retries';
三、共享池
由数据字典缓存、库缓存组成。
大小有SHARED_POOL_SIZE初始化参数指定。
查询共享池大小
sql> show parameter shared_pool_size;
查询共享池中数据字典缓存的成功与失败的次数。
sql> select sum(gets), sum(getmisses) from v$rowcache;
四、大池
需要大内存的操作提供相对独立的内存空间,是一个可选的内存结构
需要大量内存的操作包括:
数据库备份和恢复,如使用RMAN在磁带设备上执行备份、恢复等。
具有大量排序操作的SQL语句。
并行化的数据库操作。
大池由LARGE_POOL_SIZE确定。由
alter system set large_pool_size = ?M;
五、JAVA池
用于存放java代码、Java语句的语法分析表、Java语句的执行反案和进行Java程序开发。由JAVA_POOL_SIZE确定,一般不小于20M。
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8570952/viewspace-916115/ ,如需转载,请注明出处,否则将追究法律责任。