• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    oracle性能Statspack使用之命中率調整

    發布: 2011-2-18 09:34 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 41次 | 進入軟件測試論壇討論

    領測軟件測試網

      oracle性能Statspack使用之命中率調整   軟件測試

      影響Oracle的性能的因素有很多,例如oracle自身的sga設置,磁盤I/O設置等。但需要強調的一點就是oracle調整的原始動機都是減少磁盤I/O。下面舉一個數據來說明磁盤I/O的影響之大,ram中獲取數據塊和磁盤上獲取數據塊的時間差異相差兩個數量級,可以認為ram比磁盤塊14000倍,在磁盤上的訪問時間是毫秒級(一秒的千分之一),在ram的速度是納秒級的(一秒的10億分之一)。從上面可以看出,如果在理論上將oracle的數據全部緩存在內存中,那訪問速度是極快的。

      鑒于當前學習oracle還不深,本文檔的目的是如何通過statspack來分析數據庫的命中率和調整oracle的SGA。從oracle自身來說,性能最大的兩個瓶頸就是命中率和等待事件。等待事件作為接下來第二個學習點,本文檔當作命中率和oracle內存機制熟悉的一次總結。

      本次總結分為以下幾點:

      1、oracle的SGA介紹;

      2、SGA各部分命中率介紹;

      3、命中率相關的Statspack數據表作用介紹;

      4、如何使用statspack獲得和分析命中率。

      一、 oracle的SGA

      通常oracle實例包括了兩個組件:系統全局區域SGA和oracle后臺進程。當啟動oracle的時候,oracle就會用malloc()命令去建立一個內存區域作為SGA。

      SGA總容量=共享池(shared pool)+緩存區高速緩存(data buffer cache)《db_keep_cache_size,db_recycle_cache_size,db_nk_cache_size》+日志緩沖區(redo log buffer)《11Kredo log buffer的保護頁》+大型池(large pool)+java存儲區(java pool)+《streams_pool_size(10g中的新內存池)+16M(sga內部內存消耗,適合于9I及之前版本)》

      1、共享池由庫緩存(library cache)與字典緩存(dictionary cache)兩部分,庫緩存包括共享sql區(shared sql areas)、pl/sql存儲過程和包以及控制結構(如鎖、庫緩存句柄)。

      2、大型池屬于可變區,用于共享服務(shared server mts方式)的會話內存和oracle分布式事務處理的oracle接口,oracle備份和恢復操作(啟用了rman)。

      3、Java池的內存用于存儲所有會話中特定java代碼和jvm中的數據。屬于可變區。

      參數介紹:

      1、Sga_max_size ,SGA可用最大物理內存是由該參數決定的?捎胹how parameter sga查詢。平常查看任務管理器,你會發現oracle進程顯示的內存使用數量小于sga最大的內存數量,是因為oracle實例開啟時,只載入內存區最小的大小,其他sga內存只作為虛擬內存分配,這樣就會有一個風險,產生過多的page in/out操作,這種磁盤交換是很耗時間的。因而可以用pre_page_sga設置為true ,lock_sga(危險,導致數據無法開啟,原因未研究,官方說法是跟PC機有關)設置為true解決。

      2、db_block_size,執行許多全表收索的oracle數據倉庫和系統將會從16K大小塊中受益。另外db_file_multiblock_read_count與db_block_size之前有非常重要的關系,在unlx物理層上,oracle總是以最小64K的數據塊讀入。

      3、db_cache_size指定data buffer cache的大小。在oltp系統中,推薦設置為sga_max_siz/2-sga_max_size*2/3.

      非標準塊尺寸的塊大小可以在創建表空間(create tablespace)通過blocksize參數指定,而不同塊尺寸的buffer cache的大小就由相應參數db_nk_cache_size來指定,其中n可以是2,4,8,16或者32。另外注意一點,db_nk_cache_size參數不能設定標準塊尺寸的緩沖區大小,舉例來說,如果db_block_size設定為4k,就不能再設定db_4k_cache_size參數了。

      4、shared_pool_size決定共享區的大小

      5、large_pool_size確定大型池的大小

      6、java_pool_size確定java池的大小

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: oracle Oracle ORACLE 命中率

    31/3123>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>