ITPub博客

首页 > 数据库 > 数据库开发技术 > SGA区查询的基本语句

SGA区查询的基本语句

原创 数据库开发技术 作者:tonywi888 时间:2007-05-24 14:37:59 0 删除 编辑

创建实例时,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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-02-25

  • 博文量
    159
  • 访问量
    736782