1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側工具欄

      新聞中心

      這里有您想知道的互聯(lián)網營銷解決方案
      OracleSGA是什么意思

      這篇文章主要介紹了Oracle SGA是什么意思,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

      成都網站設計、成都網站制作、外貿網站建設的關注點不是能為您做些什么網站,而是怎么做網站,有沒有做好網站,給成都創(chuàng)新互聯(lián)公司一個展示的機會來證明自己,這并不會花費您太多時間,或許會給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗,一切以用戶為中心。

          SGA(System Global Area)系統(tǒng)全局區(qū)。這是一個非常龐大的內存區(qū)間,也是為什么開啟oracle之后占用了很大內存的原因。

          SGA分為不同的池,我們可以通過視圖v$sgastat查看,如下所示。

      SQL> select pool ,sum(bytes) bytes from v$sgastat group by pool;

      POOL              BYTES
      ------------ ----------
                    956298240
      java pool      16777216
      streams pool   16777216
      shared pool   199783376
      large pool     16777216

      SQL>

          我們可以看到SGA由java pool(java 池)、shared pool(共享池)、large pool(大池) 和沒有名字的池組成。其中那塊沒有名字的內存又包括塊緩沖區(qū)(緩存的數(shù)據(jù)庫塊)、重做日志緩沖區(qū)和“固定SGA”區(qū)專用的內存。

      oracle SGA內存結構如下所示:
      Oracle SGA是什么意思

       下面逐個介紹:

      1、Fixed SGA 固定SGA

            可以把這個區(qū)想成是 SGA中的“自啟”區(qū),Oracle在內部要使用這個區(qū)來找到SGA的其他區(qū)。換一句話,就是在這個內存里面存有其他區(qū)的地址,我們可以通過訪問這個區(qū)來查找到其他區(qū)的位置!

      2、Redo Buffer 重做緩沖區(qū)

            如果數(shù)據(jù)需要寫到在線重做日志中,則在寫至磁盤之前要在重做緩沖區(qū)(redo buffer)中臨時緩存這些數(shù)據(jù)。由于內存到內存的傳輸比內存到磁盤的傳輸快得多,因此使用重做日志緩沖區(qū)可以加快數(shù)據(jù)庫的操作。我的理解是,如果沒有這個區(qū),那我們操作一次數(shù)據(jù)庫就訪問一次磁盤,而如果有的話,則可以操作很多次之后才訪問一次磁盤。速度當然要快很多了。

      3、Block Buffer 塊緩沖區(qū)緩存

             Oracle將數(shù)據(jù)庫塊寫至磁盤之前,另外從磁盤讀取數(shù)據(jù)庫塊之后,就會把這些數(shù)據(jù)庫塊存儲在塊緩沖區(qū)緩存(block buffer cache)中。對我們來說,這是SGA中一個很重要的區(qū)。如果太小,我們的查詢就會永遠也運行不完。如果太大,又會讓其他進程饑餓(例如,沒有為專用服務器留下足夠的空間來創(chuàng)建其PGA,甚至無法啟動)。這個其實是緩存數(shù)據(jù),也是為什么你第二次進行同一個操作的時候比第一次要快的原因,因為他可以直接從這個緩存里面取就可以了!但是如果你第二天來繼續(xù)進行同一操作應該是比較慢的,因為在那個緩存里面已經沒有你要取的數(shù)據(jù)了!( 就是通常說的內存老化,也就是緩存你數(shù)據(jù)的那塊內存被別人用了。這就是LRU算法),為了使自己要的數(shù)據(jù)不那么快老化。oracle把這塊內存劃分為三種類型:

           默認池(default pool):所有段塊一般都在這個池中緩存。這就是原先的緩沖區(qū)池(原來也只有一個緩沖區(qū)池)。
           保持池(keep pool):按慣例,訪問相當頻繁的段會放在這個候選的緩沖區(qū)池中,如果把這些段放在默認緩沖區(qū)池中,盡管會頻繁訪問,但仍有可能因為其他段需要空間而老化(aging)。
           回收池(recycle pool):按慣例,訪問很隨機的大段可以放在這個候選的緩沖區(qū)池中,這些塊會導致過量的緩沖區(qū)刷新輸出,而且不會帶來任何好處,因為等你想要再用這個塊時,它可能已經老化退出了緩存。要把這些段與默認池和保持池中的段分開,這樣就不會導致默認池和保持池中的塊老化而退出緩存。

      4、shared pool(共享池)

           共享池就是Oracle緩存一些“程序”數(shù)據(jù)的地方。在解析一個查詢時,解析得到的表示(representation)就緩存在那里。在完成解析整個查詢的任務之前, Oracle會搜索共享池,看看這個工作是否已經完成。你運行的PL/SQL代碼就在共享池中緩存,所以下一次運行時,Oracle不會再次從磁盤重新讀取。PL/SQL代碼不僅在這里緩存,還會在這里共享。如果有1 000個會話都在執(zhí)行同樣的代碼,那么只會加載這個代碼的一個副本,并由所有會話共享。Oracle把系統(tǒng)參數(shù)存儲在共享池中。數(shù)據(jù)字典緩存(關于數(shù)據(jù)庫對象的已緩存信息)也存儲在這里。簡單地講,就像是廚房的水池一樣,什么東西都往共享池里放。我的理解是:這是個共用的東西,大家都可以用。比如一個用戶進行一次查詢,在解析之前,查看共享池,這個sql語句是否已經緩存在這里了。如果在,他就沒有必要再去進行解析了,因為已經解析好了,直接拿來用就可以了!這也是綁定變量為什么可以改善oracle性能的原因!

      5、large pool 大池

          大池(large pool)并不是因為它是一個“大”結構才這樣取名(不過,它可能確實很大)。之所以稱之為大池,是因為它用于大塊內存的分配,共享池不會處理這么大的內存塊。
      在Oracle 8.0引入大池之前,所有內存分配都在共享池中進行。如果你使用的特性要利用“大塊的”內存分配(如共享服務器UGA內存分配),倘若都在共享池中分配就不太好。另外,與共享池管理內存的方式相比,處理(需要大量內存分配)會以不同的方式使用內存,所以這個問題變得更加復雜。共享池根據(jù)LRU來管理內存,這對于緩存和重用數(shù)據(jù)很合適。不過,大塊內存分配則是得到一塊內存后加以使用,然后就到此為止,沒有必要緩存這個內存。我的理解是:其實是把原來屬于共享池里面的一些特殊的內存拿出來進行不同的處理。因為這些內存用完之后就可以立即釋放,而共享池的內存不存在釋放問題,因為是大家共享的。

           大池專門用于以下情況:
      共享服務器連接,用于在SGA中分配UGA區(qū),因為一個用戶斷開之后,UGA就可以立即釋放!
      語句的并行執(zhí)行,允許分配進程間的消息緩沖區(qū),這些緩沖區(qū)用于協(xié)調并行查詢服務器。一旦發(fā)送了緩沖消息就可以立即釋放!
      備份,在某些情況下用于RMAN磁盤I/O 緩沖區(qū)。因為寫入磁盤之后,這些緩存可以立即釋放!

      6、Java pool Java池

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

      7、Stream pool 流池

          9iR2以上增加了“流”技術,10g以上在SGA中增加了流池。流是用來共享和復制數(shù)據(jù)的工具。

      SGA設置

          沒有通用的設置,所有設置都要根據(jù)系統(tǒng)的負載、業(yè)務需求和硬件環(huán)境來進行調整。這里只是總結出大體的設定,避免因SGA設置不當引起的問題。

      1、自動SGA內存管理
              在Oracle 10g中引入了自動SGA內存管理特性,DBA可以設定SGA_TARGET告訴Oracle可用的SGA內存為多大,由Oracle根據(jù)系統(tǒng)負載來動態(tài)調整各組件大小,相應的數(shù)定會保存在控制文件中,使數(shù)據(jù)庫重啟后也記得各組件大小。
             需要注意一下幾點:
      ?   要使用自動SGA內存管理,STATISTICS_LEVEL參數(shù)必須設為TYPICAL或ALL,系統(tǒng)自動收集相應的信息用來動態(tài)調整SGA設定。
      ?   可以設定某個組件的值,Oracle使用此值為該組件的最小大小。

             可動態(tài)調整的參數(shù):
             DB_CACHE_SIZE,SHARED_POOL_SIZE,LARGE_POOL_SIZE,JAVA_POOL_SIZE。
             需手動設置的參數(shù):
             LOG_BUFFER,STREAMS_POOL,DB_NK_CACHE_SIZE,DB_KEEP_CACHE_SIZE,DB_RECYCLE_CACHE_SIZE。

      2、手動SGA內存管理
      1)  32bit和64bit限制
      在32位的操作系統(tǒng)中,Oracle最大可用內存為1.75g,也就是說SGA+PGA<=1.75g,超過這一限制的內存將不會被Oracle用到。
      32位的Oracle可以裝到64位的操作系統(tǒng)上,64位的Oracle不可以裝到32位的操作系統(tǒng)上。

      2)  查看Oracle版本:
      SQL> select * from v$version;

      BANNER
      ----------------------------------------------------------------
      Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
      PL/SQL Release 10.2.0.1.0 - Production
      CORE 10.2.0.1.0 Production

      TNS for Linux: Version 10.2.0.1.0 - Production
      NLSRTL Version 10.2.0.1.0 - Production

      3)  各組件設置:
      JAVA_POOL_SIZE:如果沒用到數(shù)據(jù)庫端java的系統(tǒng),30MB足夠。

      LOG_BUFFER:默認為MAX(512KB,128KB*CPU個數(shù))。一般系統(tǒng)1MB足夠,運行大型事務的系統(tǒng)可以設為2MB,讓1/3滿寫入日志文件時可以繼續(xù)寫入緩沖,再大也沒有意義。

      SHARED_POOL_SIZE:過大過小都會嚴重影響系統(tǒng)性能,1GB內存可以設為100MB,2GB內存可設為150MB,4GB內存可設為300MB。共享池命中過低首先要調整的是應用程序而不是擴大共享池。使用綁定變量可以減少共享池需求、提高命中率,減少共享池管理負擔和LATCH競爭。

      LARGE_POOL_SIZE:使用專用服務模式可設為30MB,除非必要,不然不建議使用共享服務器模式。

      DB_CACHE_SIZE:除去上述內存外其他可用內存都分配給該區(qū)域。

      總結
      32位Oracle:
      1G內存:SHARED_POOL_SIZE=100MB,DB_CACHE_SIZE=0.5GB;
      2G內存:SHARED_POOL_SIZE=150MB,DB_CACHE_SIZE=1.25GB;

      64位Oracle
      4G內存:SHARED_POOL_SIZE=200MB,DB_CACHE_SIZE=2.5GB;
      8G內存:SHARED_POOL_SIZE=400MB,DB_CACHE_SIZE=5GB;
      12G內存:SHARED_POOL_SIZE=500MB,DB_CACHE_SIZE=8GB

      再次強調,以上只是避免因SGA設置不當引起問題的大體設置,需要根據(jù)具體的系統(tǒng)負載和業(yè)務邏輯結合Stackpack等工具細調。

      感謝你能夠認真閱讀完這篇文章,希望小編分享的“Oracle SGA是什么意思”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!


      新聞名稱:OracleSGA是什么意思
      網站地址:http://ef60e0e.cn/article/popjcs.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        宿州市| 尚义县| 香河县| 楚雄市| 永仁县| 日照市| 泰和县| 湘西| 越西县| 大田县| 吉首市| 定西市| 临泽县| 沙田区| 昌图县| 陇南市| 淅川县| 法库县| 敦煌市| 海阳市| 和林格尔县| 苍梧县| 随州市| 额济纳旗| 邛崃市| 景谷| 汝阳县| 高台县| 化德县| 出国| 岫岩| 八宿县| 开原市| 裕民县| 香格里拉县| 景谷| 章丘市| 灵武市| 江阴市| 固始县| 正安县|