全面分析PGA

dragon路發表於2011-08-04

1.2.            PGA (The Process Global Area)
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中。這樣做可以使在程式以外中止時,能夠及時釋放和清除這些資源。

1.2.1.   PGA的組成
PGA由兩組區域組成:固定PGA和可變PGA(或者叫PGA堆,PGA Heap【堆——Heap就是一個受管理的記憶體區】)。固定PGA和固定SGA類似,它的大小時固定的,包含了大量原子變數、小的資料結構和指向可變PGA的指標。

可變PGA時一個記憶體堆。它的記憶體段可以通過檢視X$KSMPP(另外一個檢視X$KSMSP可以查到可變SGA的記憶體段資訊,他們的結構相同)查到。PGA堆包含用於存放X$表的的記憶體(依賴與引數設定,包括DB_FILES、CONTROL_FILES)。

總的來說,PGA的可變區中主要分為以下三部分內容:

o        私有SQL區;

o        遊標和SQL區

o        會話記憶體

1.2.1.1.                              私有SQL區(Private SQL Area)
前面已經說過,私有SQL區包含了繫結變數值和執行時期記憶體結構資訊等資料。每一個執行SQL語句的會話都有一個塊私有SQL區。所有提交了相同SQL語句的使用者都有各自的私有SQL區,並且他們共享一個共享SQL區。因此,一個共享SQL區可能和多個私有共享區相關聯。

一個遊標的私有SQL區又分為兩個生命週期不同的區:

o        永久區。包含繫結變數資訊。當遊標關閉時被釋放。

o        執行區。當執行結束時釋放。

建立執行區是一次執行請求的第一步。對於INSERT、UPDATE和DELETE語句,Oracle在語句執行結束時釋放執行區。對於查詢操作,Oracle只有在所有記錄被fetch到或者查詢被取消時釋放執行區。

1.2.1.2.                              遊標和SQL區(Cursors and SQL Areas)
一個Oracle預編譯程式或OCI程式的應用開發人員能夠很明確的開啟一個遊標,或者控制一塊特定的私有SQL區,將他們作為程式執行的命名資源。另外,oracle隱含的為一些SQL語句產生的遞迴呼叫(前面有介紹,讀取資料字典資訊)也使用共享SQL區。

私有SQL區是由使用者程式管理的。如何分配和釋放私有SQL區極大的依賴與你所使用的應用工具。而使用者程式可以分配的私有SQL區的數量是由引數OPEN_CURSORS控制的,它的預設值是50。

在遊標關閉前或者語句控制程式碼被釋放前,私有SQL區將一直存在(但其中的執行區是在語句執行結束時被釋放,只有永久區一直存在)下去。應用開發人員可以通過將所有開啟的不再使用的遊標都關閉來釋放永久區,以減少使用者程式所佔用的記憶體。

1.2.1.3.                              會話記憶體(Session Memory)
會話記憶體是一段用於儲存會話變數(如登入資訊)和其他預會話相關資訊的記憶體。對於共享伺服器模式下,會話記憶體是共享的,而不是私有的。

對於複雜的查詢(如決策支援系統中的查詢),執行區的很大一部分被那些記憶體需求很大的操作分配給SQL工作區(SQL Work Area)。這些操作包括:

o        基於排序的操作(ORDER BY、GROUP BY、ROLLUP、視窗函式);

o        Hash Join

o        Bitmap merge

o        Bitmap create

例如,一個排序操作使用工作區(這時也可叫排序區Sort Area)來將一部分資料行在記憶體排序;而一個Hash Join操作則使用工作區(這時也可以叫做Hash區 Hash Area)來建立Hash表。如果這兩種操作所處理的資料量比工作區大,那就會將輸入的資料分成一些更小的資料片,使一些資料片能夠在記憶體中處理,而其他的就在臨時表空間的磁碟上稍後處理。儘管工作區太小時,Bitmap操作不會將資料放到磁碟上處理,但是他們的複雜性是和工作區大小成反比的。因此,總的來說,工作區越大,這些操作就執行越快。

工作區的大小是可以調整的。一般來說,大的工作區能讓一些特定的操作效能更佳,但也會消耗更多的記憶體。工作區的大小足夠適應輸入的資料和相關的SQL操作所需的輔助的記憶體就是最優的。如果不滿足,因為需要將一部分資料放到臨時表空間磁碟上處理,操作的響應時間會增長。

1.2.2.   PGA記憶體自動管理
SQL工作區可以是自動的、全域性的管理。DBA只要設定引數PGA_AGGREGATE_TARGET給一個例項的PGA記憶體指定總的大小。設定這個引數後,Oracle將它作為一個總的全侷限制值,儘量使所有Oracle服務程式的PGA記憶體總數不超過這個值。

在這個引數出現之前,DBA要調整引數SORT_AREA_SIZE、 HASH_AREA_SIZE,、BITMAP_MERGE_AREA_SIZE 和CREATE_BITMAP_AREA_SIZE(關於這些引數,我們會在後面介紹),使效能和PGA記憶體消耗最佳。對這些引數的調整是非常麻煩的,因為即要考慮所有相關的操作,使工作區適合它們輸入資料大小,又要使PGA記憶體不消耗過大導致系統整體效能下降。

9i以後,通過設定了引數PGA_AGGREGATE_TARGET,使所有會話的工作區的大小都是自動分配。同時,所有*_AREA_SIZE引數都會失效。在任何時候,例項中可用於工作區的PGA記憶體總數都是基於引數PGA_AGGREGATE_TARGET的。工作區記憶體總數等於引數PGA_AGGREGATE_TARGET的值減去系統其他元件(如分配給會話的PGA記憶體)的記憶體消耗。分配給Oracle程式的PGA記憶體大小是根據它們對記憶體的需求情況來的。

引數WORKAREA_SIZE_POLICY決定是否使用PGA_AGGREGATE_TARGET來管理PGA記憶體。它有兩個值:AUTO和MANUAL。預設是AUTO,即使用PGA_AGGREGATE_TARGET來管理PGA記憶體。其實,從引數WORKAREA_SIZE_POLICY的名字上可以看出,Oracle的PGA記憶體自動管理只會調整工作區部分,而非工作區部分(固定PGA區)則不會受影響。

還有注意一點就是:10g之前,PGA_AGGREGATE_TARGET只在專用服務模式下生效。而10g以後,PGA記憶體自動管理在專有服務模式(Dedicated Server)和MTS下都有效。另外,9i在OpenVMS系統上還不支援PGA記憶體自動管理,但10g支援。

設定了PGA_AGGREGATE_TARGET以後,每個程式PGA記憶體的大小也是受限制的:

o        序列操作時,每個程式可用的PGA記憶體為MIN(PGA_AGGREGATE_TARGET * 5%, _pga_max_size/2),其中隱含引數_pga_max_size的預設值是200M,同樣不建議修改它。

o       並行操作時,並行語句可用的PGA記憶體為PGA_AGGREGATE_TARGET * 30% / DOP (Degree Of Parallelism 並行度)。

1.2.3.   專有服務(Dedicated Server)和共享服務(Shared Server)
對PGA記憶體的管理和分配,很大程度上依賴與服務模式。下面這張表顯示了在不同模式下,PGA記憶體不同部分的分配的異同:

記憶體區
 專有服務
 共享服務
 
會話記憶體 私有的 共享的
永久區所在區域 PGA SGA
SELECT語句的執行區所在區域 PGA PGA
DML/DDL語句的執行區所在區域 PGA PGA

1.2.4.   重要引數
PGA的管理和分配是由多個系統引數控制的,下面介紹一下這些引數:

1.2.4.1.                              PGA_AGGREGATE_TARGET
這個引數前面介紹了。它控制了所有程式PGA記憶體的總的大小。

在專有服務模式下,推薦使用PGA_AGGREGATE_TARGET。

PGA_AGGREGATE_TARGET的取值範圍是10M~(4096G - 1 )bytes。

對於PGA_AGGREGATE_TARGET大小的設定,Oracle提供了一個以下建議方案(參見Metalink Note: 223730.1):

o        對於OLTP系統,PGA_AGGREGATE_TARGET = (實體記憶體大小 * 80%) * 20%

o        對於DSS系統,PGA_AGGREGATE_TARGET = (實體記憶體大小 * 80%) * 50%

例如,你的系統是一個OLTP系統,實體記憶體為8G,那麼推薦PGA_AGGREGATE_TARGET設定為 (8 * 80%) * 20% = 1.28G。

1.2.4.2.                              WORKAREA_SIZE_POLICY
引數WORKAREA_SIZE_POLICY決定是否使用PGA_AGGREGATE_TARGET來管理PGA記憶體。它有兩個值:AUTO和MANUAL。預設是AUTO,即使用PGA_AGGREGATE_TARGET來管理PGA記憶體。

1.2.4.3.                              sort_area_size
Oracle在做排序操作(ORDER BY、GROUP BY、ROLLUP、視窗函式)時,需要從工作區中分配一定記憶體區域對資料記錄做記憶體排序。在排序完成後,資料返回之前,Oracle會釋放這部分記憶體,。SORT_AREA_SIZE指定了這部分記憶體的大小。設定了PGA_AGGREGATE_TARGET後,該引數無效。

除非在共享服務模式下,一般不推薦設定這個引數,而推薦使用PGA_AGGREGATE_TARGET進行PGA記憶體自動管理。如果需要設定此引數,可以考慮設定在1M~3M。

Oracle也許會為一個查詢分配多個排序區。通常情況下,一條語句只有1、2個排序操作,但是對於複雜語句,可能存在多個排序操作,每個排序操作都有自己的排序區。因此,語句的複雜性也影響到每個程式PGA記憶體的大小。

1.2.4.4.                              sort_area_retained_size
這個引數與SORT_AREA_SIZE配合使用。它指定了在排序操作完成後,繼續保留使用者全域性區(User Global Area UGA,關於UGA與PGA、SGA關係在UGA部分介紹)記憶體的最大大小,以維護記憶體中的排序,直到所有資料行被返回後才釋放(上面提到,SORT_AREA_SIZE的記憶體在排序完成、資料行返回之前被釋放)回UGA(注意:是釋放回UGA,而不會被作業系統回收)。

SORT_AREA_RETAINED_SIZE在共享服務中是從SGA中分配的(因為此時UGA從SGA中分配),在專有服務模式中是從PGA中分配的。而SORT_AREA_SIZE無論在那種模式下都從PGA中分配。

同樣,設定了PGA_AGGREGATE_TARGET後,該引數無效。

1.2.4.5.                              hash_area_size
HASH_AREA_SIZE設定了在做Hash Join時,hash記憶體表可佔用的記憶體空間。同樣,設定了PGA_AGGREGATE_TARGET後,該引數無效。它的預設值大小是sort_area_size的1.5倍。

此外,由於Hash Join只有在優化器為CBO(Cost-Base Optimizer)模式下才有效,因此這個引數也只有CBO模式下才有意義。

1.2.4.6.                              hash_join_enable
這個引數決定是否啟用Hash Join。預設為TRUE。

由於Hash Join只有在優化器為CBO(Cost-Base Optimizer)模式下才有效,因此這個引數也只有CBO模式下才有意義。

10g中,這個引數是隱含引數。

1.2.4.7.                              bitmap_merge_area_size
在使用點陣圖索引(Bitmap Index)時,oracle為索引點陣圖段建立一張點陣圖。在進行點陣圖索引掃描時,需要將掃描到的點陣圖索引排序後與點陣圖合併(Merge),Oracle會在PGA中開闢一片區域用於排序和合並。引數BITMAP_MERGE_AREA_SIZE指定了這篇區域的大小。預設值是1M。

同樣,設定了PGA_AGGREGATE_TARGET後,該引數無效。

1.2.4.8.                              create_bitmap_area_size
在欄位的集的勢(Cardinality 參照記錄行數,欄位的不同值的一個因子。記錄數越多,不同值越少,則集的勢越小)很小,並且表的資料變化不大時,可以考慮為欄位建立點陣圖索引以提高對該欄位的檢索效率。這個引數指定可在建立點陣圖索引時的記憶體空間佔用大小。它的預設大小是8M。

同樣,設定了PGA_AGGREGATE_TARGET後,該引數無效。

1.2.4.9.                              open_cursors
這個引數設定一個會話可以同時開啟的遊標數。由於每開啟一個遊標,都需要一部分PGA記憶體分配出來作為私有SQL區。因此這個引數也影響了每個程式的PGA記憶體的佔用大小。

1.2.4.10.                         _pga_max_size
這是一個隱含引數。它規定了一個PGA的最大大小。可參見1.2.2。

1.2.5.   重要檢視
1.2.5.1.                              V$PGASTA
V$PGASTAT提供了PGA記憶體使用情況的統計資訊和當自動PGA記憶體管理啟動時的統計資訊。檢視裡面的累加資料是自從例項啟動後開始累加的。

欄位
 資料型別
 說明
 
NAME
 VARCHAR2(64)
 統計的名稱,包括:

aggregate PGA target parameter – 當前引數PGA_AGGREGATE_TARGET的值。如果引數沒有設定,則值為0並且PGA記憶體自動管理被關閉。

aggregate PGA auto target – 在自動管理模式下,可用於工作區的總的PGA記憶體數。這個數值是動態的,和PGA_AGGREGATE_TARGET 的值以及當前工作區的負載有關,Oracle會動態調整它。

這個值相對與PGA_AGGREGATE_TARGET來說很小。其他很大一部分的PGA記憶體都被用於系統的其他元件(如PLSQL和Java的記憶體)。DBA必須保證在自動模式下有足夠的PGA記憶體用於工作區。

global memory bound – 自動模式下可用的工作區的最大大小。Oracle根據當前工作區的負載動態調整這個值。當系統中活動的工作區數量增加時,global memory bound一般會下降。如果global bound 降到低於1M,則要考慮增加PGA_AGGREGATE_TARGET了。

total PGA allocated – 當前例項分配的總的PGA記憶體大小。Oracle會試圖保持這個值在PGA_AGGREGATE_TARGET以內。然而,當工作區負載增加得非常快或者PGA_AGGREGATE_TARGET被設定得很小時,這個值也許會在一段時間內超過PGA_AGGREGATE_TARGET。

total PGA used – 當前被工作區消耗得PGA記憶體。這個數值也可以用於計算有多少PGA記憶體被其他元件(如PLSQL或Java)所消耗。

total PGA used for auto workareas – 自動模式下,當前多少PGA記憶體被工作區所消耗。這個數值也可以用於計算有多少PGA記憶體被其他元件(如PLSQL或Java)所消耗。

total PGA used for manual workareas –手動模式下,當前多少PGA記憶體被工作區所消耗。這個數值也可以用於計算有多少PGA記憶體被其他元件(如PLSQL或Java)所消耗。

over allocation count – 這個數值是自從例項啟動後累加的。當PGA_AGGREGATE_TARGET設定非常小或工作區負載增長很快時,會超額分配PGA記憶體(分配的值大於PGA_AGGREGATE_TARGET)。這種情況發生時,Oracle不能限制PGA記憶體小於PGA_AGGREGATE_TARGET,只能分配實際需要的PGA記憶體。此時,建議通過建議器檢視V$PGA_TARGET_ADVICE來增加PGA_AGGREGATE_TARGET的大小。

bytes processed – 自從例項啟動後,被記憶體SQL操作處理的位元組數。

extra bytes read/written – 自從例項啟動後,需要額外輸入資料所處理的位元組數。當工作區無法在最佳狀態下執行時,就需要進行這個額外處理。

cache hit percentage – Oracle計算出來的一個與PGA記憶體元件效能相關的資料,是自從例項啟動後累加的。如果這個值是100%,則表示例項啟動後,所有系統使用到的工作區都分配了最佳的PGA記憶體。

當工作區無法在最佳狀態下執行,就需要進行額外的資料輸入處理,這將會降低cache hit percentage。
 
VALUE
 NUMBER
 統計資料
 
UNITS
 VARCHAR2(12)
 資料的單位 (microseconds, bytes, or percent)
 

 

1.2.5.2.                              V$PGA_TARGET_ADVICE
這個檢視是可以顯示PGA優化建議器的估算預測結果,它顯示了在各種PGA_AGGREGATE_TARGET值時,V$PGASTAT可能會顯示的PGA效能統計資料。選取所用來預測的PGA_AGGREGATE_TARGET值是當前PGA_AGGREGATE_TARGET左右的的值。而估算出的統計值是根據例項啟動後的負載模擬出來的。

只有當建議器開啟(隱含引數_smm_advice_enabled為TRUE),並且引數STATISTICS_LEVEL值不是BASIC時,檢視中才會有內容。例項重啟後,所有預測資料都會被重寫。

欄位
 資料型別
 說明
 
PGA_TARGET_FOR_ESTIMATE
 NUMBER
 用於預測的PGA_AGGREGATE_TARGET值。
 
PGA_TARGET_FACTOR
 NUMBER
 預測的PGA_AGGREGATE_TARGET與當前PGA_AGGREGATE_TARGET的比。
 
ADVICE_STATUS
 VARCHAR2(3)
 建議器狀態(ON或OFF)
 
BYTES_PROCESSED
 NUMBER
 預測的被所有工作區處理的位元組數。
 
ESTD_EXTRA_BYTES_RW
 NUMBER
 當PGA_AGGREGATE_TARGET設定為預測值時,需要額外讀寫的位元組數。
 
ESTD_PGA_CACHE_HIT_PERCENTAGE
 NUMBER
 當PGA_AGGREGATE_TARGET設定為預測值時,快取命中率。這個值等於BYTES_PROCESSED / (BYTES_PROCESSED + ESTD_EXTRA_BYTES_RW)
 
ESTD_OVERALLOC_COUNT
 NUMBER
 當PGA_AGGREGATE_TARGET設定為預測值時,需要超額分配的PGA記憶體。如果非0則說明PGA_AGGREGATE_TARGET設定得太小。
 

 

1.2.5.3.                              V$SYSSTAT 、V$SESSTAT
這兩個檢視顯示了系統(會話)的統計資料。他們的統計專案基本相同,但不同之處在於一個是系統級的、一個是會話級的。

通過這兩個檢視我們可以查出像sort這樣操作對工作區的使用情況:

SQL> select * from V$SYSSTAT  2  where name like '%sort%'; STATISTIC# NAME                                                                  CLASS      VALUE---------- ---------------------------------------------------------------- ---------- ----------       245 sorts (memory)                                                           64    2876455       246 sorts (disk)                                                             64        483       247 sorts (rows)                                                             64  116554720 SQL>

1.2.5.4.                              V$SQL_WORKAREA
這個檢視顯示了被SQL遊標使用的工作區的資訊。儲存在Shared Pool中的每條SQL語句都有一個或多個子遊標,它們能被V$SQL顯示。而V$SQL_WORKAREA顯示需要被這些遊標所使用的工作區資訊。可以將它與V$SQL進行join查詢。

通過這個檢視可以解決以下一些問題:

1、 請求最多的工作區;

2、 在自動模式下,佔用記憶體最多的工作區。

欄位
 資料型別
 說明
 
ADDRESS
 RAW(4 | 8)
 遊標控制程式碼的地址。
 
HASH_VALUE
 NUMBER
 遊標控制程式碼的Hash值。這個欄位和ADDRESS欄位join V$SQLAREA可以定位出相關語句。
 
CHILD_NUMBER
 NUMBER
 使用此工作區的子游標數。
 
WORKAREA_ADDRESS
 RAW(4 | 8)
 工作區控制程式碼的地址。唯一定位了一條記錄
 
OPERATION_TYPE
 VARCHAR2(20)
 工作區的操作型別(SORT, HASH JOIN, GROUP BY, BUFFERING, BITMAP MERGE, or BITMAP CREATE)
 
OPERATION_ID
 NUMBER
 唯一定位查詢計劃中的一個操作的值,可以和檢視V$SQL_PLAN join。
 
POLICY
 VARCHAR2(10)
 工作區的模式(MANUAL或AUTO)
 
ESTIMATED_OPTIMAL_SIZE
 NUMBER
 估計需要此工作區來執行記憶體中操作的所需的大小。
 
ESTIMATED_ONEPASS_SIZE
 NUMBER
 估計需要此工作區來一次執行記憶體中操作的所需的大小。
 
LAST_MEMORY_USED
 NUMBER
 最後一次執行遊標所使用的工作區大小。
 
LAST_EXECUTION
 VARCHAR2(10)
 最後一次執行遊標,工作區請求記憶體的方式,OPTIMAL, ONE PASS, ONE PASS 或MULTI-PASS。
 
LAST_DEGREE
 NUMBER
 最後一次執行並行操作的並行度(Degree of parallelism DOP)。
 
TOTAL_EXECUTIONS
 NUMBER
 此工作區啟用的次數。
 
OPTIMAL_EXECUTIONS
 NUMBER
 此工作區執行於optimal模式的次數
 
ONEPASS_EXECUTIONS
 NUMBER
 此工作區執行於one-pass 模式的次數
 
MULTIPASSES_EXECUTIONS
 NUMBER
 此工作區執行於one-pass記憶體請求情況下的次數
 
ACTIVE_TIME
 NUMBER
 此工作區啟用的評價時間數。
 
MAX_TEMPSEG_SIZE
 NUMBER
 例項化此工作區所建立的臨時段的最大大小。
 
LAST_TEMPSEG_SIZE
 NUMBER
 最後一次例項化此工作區所建立的臨時段的大小。
 

1.2.5.5.                              V$SQL_WORKAREA_ACTIVE
這個檢視包含了系統當前分配的工作區的瞬間資訊。可以通過欄位WORKAREA_ADDRESS join V$SQL_WORKAREA來查詢工作區資訊。如果工作區溢位到磁碟,則這個檢視就包含了這個工作區所溢位的臨時段的資訊。通過與檢視V$TEMPSEG_USAGE join,可以得到更多的臨時段資訊。

這個檢視可以解決以下問題:

1、 當前系統分配最大的工作區;

2、 超額分配記憶體的百分比(EXPECTED_SIZE < ACTUAL_MEM_USED),和未超額分配記憶體的百分比(EXPECTED_SIZE > ACTUAL_MEM_USED);

3、 哪個活動的工作區使用了超出記憶體管理預期的記憶體大小;

4、 那個活動的工作區溢位到磁碟了。

欄位
 資料型別
 說明
 
WORKAREA_ADDRESS
 RAW(4 | 8)
 工作區控制程式碼的地址。唯一定位了一條記錄。
 
OPERATION_TYPE
 VARCHAR2(20)
 使用此工作區的操作 (SORT, HASH JOIN, GROUP BY, BUFFERING, BITMAP MERGE, 或 BITMAP CREATE)
 
OPERATION_ID
 NUMBER
 唯一定位查詢計劃中的一個操作的值,可以和檢視V$SQL_PLAN join。
 
POLICY
 VARCHAR2(6)
 工作區的模式(MANUAL或AUTO)
 
SID
 NUMBER
 會話ID
 
QCINST_ID
 NUMBER
 查詢協調(查詢協調在並行查詢中出現)者例項ID。
 
QCSID
 NUMBER
 查詢協調者的會話ID。
 
ACTIVE_TIME
 NUMBER
 此工作區啟用的平均時間(釐秒為單位)
 
WORK_AREA_SIZE
 NUMBER
 被當前操作使用的最大工作區大小。
 
EXPECTED_SIZE
 NUMBER
 工作區的預期大小。預期大小是記憶體管理器設定的。當WORK_AREA_SIZE 大於EXPECTED_SIZE 時,記憶體會超額分配。
 
ACTUAL_MEM_USED
 NUMBER
 當前分配個工作區的PGA記憶體大小(KB)。這個值在0和 WORK_AREA_SIZE之間。
 
MAX_MEM_USED
 NUMBER
 這個工作區使用的最大大小(KB)。
 
NUMBER_PASSES
 NUMBER
 這個工作區的通道數(如果在OPTIMAL模式下為0)
 
TEMPSEG_SIZE
 NUMBER
 用於此工作區的臨時段大小。
 
TABLESPACE
 VARCHAR2(31)
 建立臨時段給這個工作區的表空間名字。
 
SEGRFNO#
 NUMBER
 建立臨時段的表空間的檔案ID。
 
SEGBLK#
 NUMBER
 給工作區建立臨時段的block數。
 

1.2.5.6.                              V$PROCESS
這個檢視顯示了所有Oracle程式的資訊。其中以下幾個欄位則說明了程式PGA記憶體的使用情況。

PGA_USED_MEM:程式使用的PGA記憶體

PGA_ALLOCATED_MEM:分配給程式的PGA記憶體

PGA_MAX_MEM:程式使用的最大的PGA記憶體

本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文連結:http://www.linuxidc.com/Linux/2011-06/37785.htm

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25736250/viewspace-704155/,如需轉載,請註明出處,否則將追究法律責任。

相關文章