The important thing in life is to have a great aim , and the determination

          常用鏈接

          統計

          IT技術鏈接

          保險相關

          友情鏈接

          基金知識

          生活相關

          最新評論

          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內存結構之共享池的相關知識及使用方法就介紹到這里了,希望本次的介紹能夠對您有所收獲!

          posted on 2014-05-17 23:37 鴻雁 閱讀(170) 評論(0)  編輯  收藏 所屬分類: 數據庫

          主站蜘蛛池模板: 麻栗坡县| 新河县| 霍邱县| 渝中区| 贵港市| 牡丹江市| 西安市| 台州市| 曲阜市| 石渠县| 德格县| 长宁县| 精河县| 喜德县| 永城市| 禹城市| 姜堰市| 墨江| 西贡区| 临沧市| 平顶山市| 栖霞市| 绥芬河市| 怀来县| 资兴市| 营山县| 克什克腾旗| 汾西县| 荣昌县| 运城市| 五河县| 兴仁县| 深水埗区| 岱山县| 当阳市| 贵港市| 日土县| 乌鲁木齐县| 随州市| 平顶山市| 湄潭县|