<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    cAng^Er

    不懂我的人 , 離不了我 , 該了解了解我 !而懂我的人 , 更離不了我 , 因為他們愛我 。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      30 隨筆 :: 16 文章 :: 18 評論 :: 0 Trackbacks

    原文:http://bbs.dameng.com/viewthread.php?tid=2202&extra=page%3D1

    PGA是一個服務器進程的專用的私有內存區,而SGA則是共享內存區。

    SGA由多個部分組成:
    1, 固定SGA(Fixed SGA)
    2, 塊緩沖區(Db cache)
    3, 重做日志緩沖區(Redo log buffer)
    4, Java池(Java pool)
    5, 大池(Large pool)
    6, 共享池(Shared pool)
    7, 流池(Stream pool)

    有如下參數控制共享池相關組件大小:
    1, JAVA_POOL_SIZE:控制Java池大小。
    2, SHARED_POOL_SIZE:9i中控制共享池中占用最大的部分,10g以上控制共享池大小。
    3, LARGE_POOL_SIZE:控制大池大小。
    4, DB_*K_CACHE_SIZE:控制不同塊大小的緩沖區大小。
    5, LOG_BUFFER:控制重做日志緩沖區大小。
    6, SGA_TARGET:10g以上控制自動SGA內存管理的總內存大小。
    7, SGA_MAX_SIZE:控制SGA可以達到的最大大小,改變需重啟數據庫

    下面將詳細介紹各個部分的作用和推薦設置。

    SGA各組件作用
    1, SGA:

    2, 塊緩沖區:
        查詢時,Oracle會先把從磁盤讀取的數據放入內存,以后再查詢相關數據時不用再次讀取磁盤。insert和update時,Oracle SGA會現在該區中緩存數據,之后批量寫到硬盤中。通過塊緩沖區,Oracle可以通過內存緩存提高磁盤的I/O。
        塊緩沖區中有三個區域:
    默認池(Default pool):所有數據默認都在這里緩存。
    保持池(Keep pool):用來緩存需要多次重用的數據。
    回收池(Recycle pool):用來緩存很少重用的數據。

        原來只有一個默認池,所有數據都在這里緩存。這樣會產生一個問題:大量很少重用的數據會把需重用的數據緩沖區,造成磁盤I/O增加,運行速度下降。后來分出了保持池和回收池根據是

    否經常重用來分別緩存數據。
        這三部分內存區需要手動確定大小,并且之間沒有共享。例如:保持池中已經滿了,而回收池中還有大量空閑內存,這時回收池的內存不會分配給保持池。
        9i開始,還可以設置db_nk_cache。9i之前數據庫只能使用相同的塊大小。9i開始同一個數據庫可以使用多種塊大小(2KB,4KB,8KB,16KB,32KB),這些塊需要在各自的db_nk_cache中緩存。如果為不

    同的表空間指定了不同的塊大小,需要為其設置各自的緩沖區。

    3, 重做日志緩沖區(Redo log buffer):
        數據寫到重做日志文件之前在這里緩存,在以下情況中觸發:
    每隔3秒
    緩存達到1MB或1/3滿時
    用戶提交時
    緩沖區的數據寫入磁盤前

    4, Java池(Java pool):
        在數據庫中運行Java代碼時用到這部分內存。例如:編寫Java存儲過程在服務器內運行。需要注意的是,該內存與常見的Java編寫的B/S系統并沒關系。用JAVA語言代替PL/SQL語言在數據庫中寫存儲

    過程才會用到這部分內存。

    5, 大池(Large pool):
        下面三種情況使用到大池:
    并行執行:存放進程間的消息緩沖區
    RMAN:某些情況下用于磁盤I/O緩沖區
    共享服務器模式:共享服務器模式下UGA在大池中分配(如果設置了大池)

    6, 共享池(Shared pool)
        共享池是SGA中最重要的內存段之一。共享池太大和太小都會嚴重影響服務器。
    SQL和PL/SQL的解釋計劃、代碼,數據字典數據等等都在這里緩存。
    SQL和PL/SQL代碼在執行前會進行“解析”來獲得執行計劃及權限驗證等相關輔助操作。“解析”很費時間。對于響應時間很短的查詢,“解析”可以占到全部時間的2/3。對于響應時間較長的統計等操

    作,“解析”所占用的時間比例會下降很多。執行計劃及所需的數據字典數據都緩存在共享池中,讓后續相同的查詢可以減少很多時間。
        不使用“綁定變量”導致:
        系統需要花費大量的資源去解析查詢。
        共享池中的代碼從不重用,系統花費很大代價管理這部分內存。
        關于共享變量的優缺點討論已經超過了這篇文章的范疇,簡單來講,響應時間短的查詢要使用共享變量,響應時間長的統計不使用共享變量。
        需要注意的是,SHARED_POOL_SIZE參數在9i中控制共享池中占用最大的部分,10g以上控制共享池總大小。

    7, 流池(Stream pool)
        9iR2以上增加了“流”技術,10g以上在SGA中增加了流池。流是用來共享和復制數據的工具。
    posted on 2011-02-23 10:49 cAng^Er 閱讀(336) 評論(0)  編輯  收藏 所屬分類: |:數 據 庫:|
    主站蜘蛛池模板: 中文字幕在线观看亚洲日韩| 国产精品高清免费网站| 国产免费观看黄AV片| 青青草国产免费国产是公开| 久久99国产亚洲高清观看首页| 精品无码人妻一区二区免费蜜桃 | 免费看美女裸露无档网站| 亚洲av无码一区二区三区四区| 亚洲视频在线观看2018| 波多野结衣久久高清免费| 18禁超污无遮挡无码免费网站| 亚洲国产精品一区二区久| 亚洲国产精品尤物YW在线观看| 日本视频免费高清一本18 | 95老司机免费福利| 亚洲av无码专区在线电影天堂| 亚洲熟妇中文字幕五十中出| 99re热免费精品视频观看| 亚洲免费在线观看| 亚洲国产系列一区二区三区| 国产亚洲精品精华液| 永久黄网站色视频免费直播| 亚洲午夜免费视频| 成人特级毛片69免费观看| 亚洲成a人片在线观看精品| 久久久久国产成人精品亚洲午夜 | a级毛片高清免费视频| 亚洲人成人伊人成综合网无码| 亚洲熟妇无码另类久久久| 日韩免费在线观看| 免费91麻豆精品国产自产在线观看| 亚洲自偷自拍另类图片二区| 免费在线观看理论片| 国产精品亚洲四区在线观看| 亚洲av再在线观看| 亚洲一区二区三区免费视频| 亚洲一区二区三区免费观看| 又粗又硬免费毛片| 免费视频一区二区| 亚洲av无码一区二区三区四区| 亚洲美女免费视频|