oracle中的sga和pga

oracle中的sga包含了幾個主要的部分
1.shared pool 共享池
2.database buffer cache 數據庫高速緩沖區
3.redo log buffers 重做日志緩沖區
4.large pool 大池
5.java pool java池

a.shared pool:
oracle shared pool包括library cache(庫緩存)和dictionary cache(數據字典高速緩存)

library cache中包含了共享sql區和共享pl/sql區兩部分,他們分別存放sql和pl/sql語句以及相關的信息。oracle通過一個稱為LRU(least recently used)隊列的算法來實現對library cache管理的。其算法大致如下:剛剛使用過的內存塊(的地址)放在LRU隊列的頭上,當一個服務器進程需要library cache的內存空間時該進程就從LRU對列的尾部獲取所需的內存塊,這些內存塊一旦被使用他們(的地址)就立即放在LRU對列的最前面,這樣那些長時間沒有使用過的內存塊將自然地移動到LRU對列的尾部而最先被使用。為了能夠共享sql和pl/sql的代碼,library cache要足夠大。不過oracle并沒有修改library cache大小的參數。只能間接地通過修改shared pool來修改library cache的大小。長時間的使用shared pool會產生許多碎片如果在shared pool中沒有足夠的連續空間來裝載目標數據就會產生錯誤,所以oracle提供了flush_shared_pool參數來刷新shared pool
語句:
alter system set shared_pool_size=48M;
alter system flush_shared_pool;

dictionary cache:數據庫對象的信息存儲在數據字典表中,當數據庫需要這些信息的時候,將讀取字典表并將返回的數據存儲在dictionary cache中。dictionary cache也是通過LRU算法來使用數據塊。dictionary cache是shared pool的一部分,不能單獨設置其大小,只能同過修改shared_pool_size參數在修改。當查詢數據字典的速度緩慢時,應該加大shared_pool_size。

b.database buffer cache:
oracle修改數據時,服務器進程將首先在database buffer cache中搜索所需要的數據,如果找到了就直接使用而不進行磁盤搜索,如果沒有找到就進行磁盤操作,把數據文件中的數據讀入到database buffer cache中。修改后,當達到一定條件時,會由DBWn進程負責把database buffer cache中的數據寫入到數據文件中。oracle也是使用LRU算法來實現對database buffer cache的管理的。可以使用db_block_size和db_block_buffers來設置database buffer cache的大小,其中db_block_size是在創建數據庫時固定了的,創建完數據庫后不可修改。而db_block_buffers的算法是48M/db_block_size。如果SGA的大小不足以容納所使用的數據,那么其他緩沖區將爭用database buffer cache的空間,使數據庫性能下降。多個程序共享一個SGA時易出現這種現象。 當什么時候DBWn進程才將database buffer cache中的數據寫入到數據文件中呢 :
1.Checkpoint的時候
2.當buffer cache中沒有足夠的free buffer的時候。


c.redo log buffers:
當數據庫中的數據被修改時,后臺進程LGWR將修改的內容,記錄到redo log中,以便在數據庫恢復過程中實現回滾。然而在被寫入到redo log之前,事物首先被記錄在redo log buffers中。當達到一定條件后將激活LGWR進程來寫入redo log文件中。而這幾個條件分別是:
1.發生提交。
2.到達LGWR非活動時限。
3.redo log buffers中的數據達到redo log buffers 1/3時。
4.DBWn在檢查點完成database buffer cache的刷新。


d.large pool:
Large Pool是一種類似共享池的SGA緩沖池,和共享池不同的是,只有少量類型的對象可以在Large Pool中創建。Large Pool的空間不在共享池中分配,是在數據庫啟動的時候另外分配的。Large Pool的大小由LARGE_POOL_SIZE確定。Oracle數據庫也可以不配置Large Pool。從Oracle 8開始,Oracle數據庫引入了Large Pool,在Oracle 8中,Large Pool的主要功能由兩個:
1.為MTS(共享服務器的早期版本)模式的會話分配UGA空間.
2.作為連續文件IO的緩沖,比如系統管理的恢復和rman備份恢復(當RMAN使用了多個IO SLAVES的時候)
在一般情況下LARGE POOL使用需求不大,因此不必要設置過大的LARGE POOL.

e.java pool:
引入java pool的目的是能夠編譯java語言的命令,如果要使用java語言,就必須要設置java pool。java語言早oracle數據庫中的存儲于pl/sql語言幾乎完全相同。可以通過參數java_pool_size的值來設置java pool的大小,其單位是字節(bytes)。在oracle9i中java pool的默認大小是24M。


PGA

(Program Global Area程序全局區)是一塊包含一個服務進程的數據和控制信息的內存區域。它是Oracle在一個服務進程啟動是創建的,是非共享的。一個Oracle進程擁有一個PGA內存區。一個PGA也只能被擁有它的那個服務進程所訪問,只有這個進程中的Oracle代碼才能讀寫它。因此,PGA中的結構是不需要Latch保護的。
我們可以設置所有服務進程的PGA內存總數受到實例分配的總體PGA(Aggregated PGA)限制。
在專有服務器(Dedicated Server)模式下,Oracle會為每個會話啟動一個Oracle進程;
而在多線程服務(Multi-Thread Server MTS)模式下,由多個會話共享同一個Oracle服務進程。
PGA中包含了關于進程使用到的操作系統資源的信息,以及一些關于進程狀態的信息。
而關于進程使用的Oracle共享資源的信息則是在SGA中。
這樣做可以使在進程以外中止時,能夠及時釋放和清除這些資源。

相關視圖
V$PGASTAT
V$PGASTAT提供了PGA內存使用情況的統計信息和當自動PGA內存管理啟動時的統計信息。
視圖里面的累加數據是自從實例啟動后開始累加的。

V$SYSSTAT,V$SESSTAT
這兩個視圖顯示了系統(會話)的統計數據。他們的統計項目基本相同,
但不同之處在于一個是系統級的、一個是會話級的。

V$PROCESS
這個視圖顯示了所有Oracle進程的信息。其中以下幾個字段則說明了進程PGA內存的使用情況。
PGA_USED_MEM:進程使用的PGA內存
PGA_ALLOCATED_MEM:分配給進程的PGA內存
PGA_MAX_MEM:進程使用的最大的PGA內存

轉載于:https://www.cnblogs.com/alex-blog/articles/2470768.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/274692.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274692.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274692.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

進來做幾道 JavaScript 基礎題找找自信?

大家好,我是若川。持續組織了8個月源碼共讀活動,感興趣的可以 點此加我微信ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

人物肖像速寫_驕傲家庭:肖像項目

人物肖像速寫2020 has been a solemn, transformative year. Pride month takes place in the context of a groundswell up-rising against racism and police brutality and in the continued isolation of COVID-19.2020年是莊嚴,變革的一年。 驕傲月的發生是在反…

答讀者問:錢和成長,哪個更重要?

大家好,我是若川。持續組織了8個月源碼共讀活動,感興趣的可以 點此加我微信ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

ui設計顏色的使用_UI設計中顏色使用的10條原則

ui設計顏色的使用重點 (Top highlight)1.顏色術語 (1. Color Terminology) Color terminology forms our foundation of color knowledge. Think of color terms like hue, tint, and shade as tools that we can employ to develop unique color palettes.顏色術語構成了我們顏…

Chrome插件:網易云音樂聽歌識曲

大家好,我是若川。持續組織了8個月源碼共讀活動,感興趣的可以 點此加我微信ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

五大常用算法之四:回溯法

1、概念 回溯算法實際上一個類似枚舉的搜索嘗試過程,主要是在搜索嘗試過程中尋找問題的解,當發現已不滿足求解條件時,就“回溯”返回,嘗試別的路徑。 回溯法是一種選優搜索法,按選優條件向前搜索,以達到目標…

如何設置ad18捕捉圖標_圖標設計中的像素捕捉

如何設置ad18捕捉圖標More in the iconography series:? Foundations of Iconography? 7 Principles of Icon Design? 5 Ways to Create a Settings Icon? Icon Grids & Keylines Demystified? 3 Classic Icon FamiliesWe all want our designs to display sharp on a…

React Hooks 原理與最佳實踐

大家好,我是若川。持續組織了8個月源碼共讀活動,感興趣的可以 點此加我微信ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

BW:BW增量更新方法(假增量)

1 說說假增量 我們都知道,對于BW來說,很多ECC的標準數據源自帶了增量更新功能,每天各種憑證產生的增量數據會自動堆積到增量隊列里,然后BW端做一個增量信息包按天把這些增量抽取到數據倉庫里,非常輕松自然,…

插圖 引用 同一行兩個插圖_為什么插圖是產品的重要組成部分

插圖 引用 同一行兩個插圖“Hi, my name is Ludmila and I’m a UX/UI designer”“嗨,我叫Ludmila,我是UX / UI設計師” “Hi, Ludmila”“嗨,路德米拉” “Welcome”“歡迎” Not anonymously at all, I’ve been doing UX/UI design fo…

如果是你你會如何重新設計和定義維基百科(wikipedia)?

日期:2012-8-11 來源:GBin1.com 最近一家設計公司發布了一個關于如何重新定義和設計維基百科的網站,在這里網站里詳細的刨析了如何重新設計維基百科的話,如何做品牌設計和網站設計,整個設計過程都使用非常詳細的文檔說…

祖父元素_幫助祖父母建立Skype帳戶的UX經驗教訓

祖父元素“Empathy is a key part of a UX designers arsenal”, they say. It’s drilled into our heads that we need to be thinking about our user, about their journey, about what works best for them. And it does feel empowering to boast of empathy, inside vis…

ECSHOP批量添加商品到購物車

Ecshop是一款開源的網上商店系統,在我心目中可以算得上網上商城界的Wordpress了。 本文介紹如何實現在ecshop中批量添加商品到購物車。 大家都知道,默認的ecshop只能單件點擊“添加到購物車”(Add to Cart)實現一件一件的添加商品…

2022年CSS的發展如何?

大家好,我是若川。持續組織了8個月源碼共讀活動,感興趣的可以 點此加我微信ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

分布式實物實現方式_這是您完成實物產品設計任務的方式

分布式實物實現方式You’ve come to the last stages of an interview. There’s only one thing left to do: the dreaded take home design assignment.您已經到達面試的最后階段。 只剩下一件事要做: 可怕的帶回家的設計任務。 This is the hard part of any in…

TP-Link路由器下的多種接入模式

無線AP:把LAN轉成WLAN 客戶端:把WLAN轉成LAN 中繼:簡單放大上一個無線路由器的WLAN信號,SSID與上一個無線路由器一樣 橋接:與上一個無線路由器的WLAN信號連接,SSID與上一個無線路由器不同,又叫W…

type 和 interface 傻傻分不清楚?

大家好,我是若川。持續組織了8個月源碼共讀活動,感興趣的可以 點此加我微信ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

上帝公式_感謝上帝的空白

上帝公式Do you ever walk into a room cluttered with discarded papers and leftover takeout and feel comfortable?您是否曾經走進過亂七八糟的房間? Yes, you might if you’re a sophomore at college. That’s just dorm life. Back in the late 90’s to …

POJ 1325 Machine Schedule(二分圖最小點集覆蓋)

題目鏈接:http://poj.org/problem?id1325 題意:A機器有n個模式,B機器有m個模式,有k個任務,第i個任務可以用A機器的ai模式或者B機器的bi模式,換模式需要重啟,開始兩個機器都在模式0,…

figma下載_在Figma上進行原型制作的各種觸發選項

figma下載Prototypes are model versions of digital products. They’re used to measure usability by testing with potential users of a product. When making prototypes with Figma, it is necessary that the actions that trigger reactions aren’t strangers and th…