Oracle 10g内存结构之共享池的相关知识及使用简介

数据库 Oracle
本文我们主要介绍了Oracle内存结构之共享池的相关知识以及它的详细的使用方法,希望本次的介绍能够对您有所收获!

之前我们介绍了:Oracle 10g内存结构之系统全局区简介,本文我们接着介绍一下Oracle 10g内存结构之共享池的相关知识,接下来就让我们一起来了解一下这部分内容吧。

SGA中的第三个组成部分是共享池。共享池是对sql ,pl/sql 程序进行语法分析、编译、执行的内存区域。共享池包括库缓冲区(library cache)、数据字典缓冲区(Data Directory Cache)用户全局区(User Global Area)。其中库缓冲区含有Sql 语句的分析码、执行计划;数据字典缓冲区含有从数据字典中得到的表、列定义、权限。用户全局区包含用户的MTS 会话信息。

共享池主要用于对SQL 、pl/sql 程序语句进行语法分析、编译、执行、所以,如果应用中药运行大量存储过程或包,则要增加共享池的尺寸。共享池的大小由参数SHARE_POOL_SIZE确定。要了解共享池大小,可以用以下方法:

方法一:

 

  1. ………  
  2. Shared_Pool_size = 52428800 
  3. ….. 

 

方法二:

 

  1. SQL> select name,value from v$parameter where name like ‘%size’; 

 

方法三:

 

  1. SQL> show parameter share_pool_size 

 

共享池应计算存储过程、包等的成功率。

可以查询数据字典 v$rowcache 了解数据字典的成功与失败次数。

 

  1. SQL> select sum(gets) “dictionary gets”,  
  2. Sum(getmisses) “dictionary cache getmisses”  
  3. From v$rowcache ; 

 

其中gets 表示读取某一类数据字典的成功次数,getsmisses 表示读取某一类数据字典的失败次数。此外还可以通过查询结果计算共享池中读取数据字典的成功率

 

  1. SQL> select parameter, get, getmisses, getmisses/(getmisses+gets)*100 “miss ratio”,  
  2. (1-    (sum(getmisses)/(sum(getmisses)+sum(gets)) ) ) *100 “hit ratio”  
  3. From v$rowcache  
  4. Where gets+getmisses<>0  
  5. Group by parameter,gets,getmisses; 

 

查询数据字典 v$librarycache 可以计算共享池中库缓存的失败率,结果应该小于1%。

 

  1. SQL>select sum(pins) “ total pins”, sum(reloads) “ total reloads”, sum(reloads)/sum(pins)*100 libarycache  from  v$librarycache; 

 

其中 total pins 表示驻留内存的次数, total reloads 表示重新加载到内存的次数,librarycache 表示失败率。

上面分析了系统全局区的三个组成部分-----数据缓冲区、日志缓冲区及共享池,如果要得到SGA的总大小,可以在SQL*Plus中使用show sga 命令。

SQL>show sga或查询数据字典

SQL> select * from v$sga;

如果要查询某个参数的大小,可以查询数据字典v_$sagstat,通过计算可以知道sga的使用空间与空闲空间的比。

 

  1. SQL>col OBJECT_NAME format a20  
  2. SQL> col 空闲空间百分比(%) format 90.99  
  3. SQL> select name,  
  4. Sgasize/1024/1024  “allocated(M)” ,  
  5. Bytes/1024        “空闲空间(k)” ,  
  6. Round(bytes/sagsize*100,2)  “空闲空间百分比(%)”  
  7. From ( select sum(bytes) sgasize from sys.v_$sgastat) s ,sys.v_$sgastat f  
  8. Where f.name=’free memory’ ;  

 

关于Oracle 10g内存结构之共享池的相关知识及使用方法就介绍到这里了,希望本次的介绍能够对您有所收获!

【编辑推荐】

  1. Oracle 11g R2数据库示例用户安装说明
  2. Oracle 11g数据库审计功能应用实例解析
  3. Oracle 11g数据库默认审计选项说明详解
  4. Oracle 11g数据库使用XML Table的BUG解决
  5. PowerDesigner15连接Oracle出错的解决方案
责任编辑:赵鹏 来源: 火魔网
相关推荐

2011-08-23 15:04:41

Oracle 10g内程序全局区排序区

2011-08-23 14:23:25

Oracle 10g内系统全局区

2011-03-25 16:10:58

oraclenagios

2009-10-20 18:32:25

Oracle 10g

2011-08-17 16:52:11

Oracle 10gLogmnr

2010-04-14 16:09:51

Oracle 10g归

2010-03-30 19:31:25

Oracle 10g

2010-04-16 15:57:54

Oracle 10g

2011-07-27 14:22:41

Oracle 10g DBA账户

2011-08-23 18:04:16

Oracle 10g数据泵

2011-05-13 11:21:51

linuxoracle 10g安装

2009-10-23 16:03:40

Oracle 10g系内存管理

2011-08-17 16:11:02

Oracle 10g正REGEXP_LIKE

2011-03-29 10:09:41

Oracle 10g虚拟数据库

2009-04-27 13:26:41

Oracle 10gRAC链接错误

2009-10-26 13:54:29

Oracle 10g用

2010-05-07 09:35:25

Oracle 10g

2011-04-15 09:53:37

Oracle 10gSQL优化

2010-04-07 09:39:18

Oracle 10G

2011-08-17 14:19:43

Oracle 10gShrink Tablshrink spac
点赞
收藏

51CTO技术栈公众号