PGA AGGREGATE TARGET

目次[非表示]

  1. 1.基本情報
    1. 1.1.パラメータ情報
    2. 1.2.説明
  2. 2.注意
    1. 2.1.PGA/ Workareaサイズ
    2. 2.2.Hash/ Sort操作との関係
    3. 2.3.非常に大きなSort Areaが必要な場合
  3. 3.関連情報
  4. 4.分析例
    1. 4.1.PGA_AGGREGATE_TARGET整合性分析
    2. 4.2.OS Free Memory使用量とPGA_AGGREGATE_TARGET
      1. 4.2.1.Free Memory推移
      2. 4.2.2.Total Session推移
      3. 4.2.3.Free MemoryとTotal Session推移比較
      4. 4.2.4.PGAメモリーの使用状況を確認
        1. 4.2.4.1.パラメータ
        2. 4.2.4.2.V$PGA_TARGET_ADVICE
      5. 4.2.5.結論

基本情報

パラメータ情報

Syntax:PGA_AGGREGATE_TARGET
設定方法     ・Parameter File
         ・ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 1G
バージョンとデフォルト
9iR2 : 0
10gR1 : Max(10M, 20% of SGA)

説明

PGA_AGGREGATE_TARGET(PAT)パラメータは、単一のインスタンスで起動されているすべてのサーバプロセス(Server Process)が使用するPGAメモリーの合計サイズの目標値(Target)を設定します。この機能を使用すると、ユーザーがSort Area Sizeと同じWorkarea Sizeを個別指定しなくても、Oracleが目標値に基づいて、各プロセスごとに最適なサイズのPGAを割り当てます。
この値がセットされると、WORKAREA_SIZE_POLICYパラメータの値は、AUTOに設定されたものとみなされます。またSORT_AREA_SIZE、HASH_AREA_SIZEと同じWorkarea Sizeを決定するパラメータの値は無視されます。

注意

PGA/ Workareaサイズ

PGA_AGGREGATE_TARGETの値と実際のサーバプロセスが使用可能なメモリとの間の相関関係を理解する必要があります。仮にこの値が1Gに設定されたことは何を意味するかを下の例で見てみましょう。

ALTER SYSTEM SET PGA_AGGREGATE_TARGET=1G;
 
- パラメータ値の照会
pga_aggregate_target=1073741824=1G
_smm_max_size=104850=100M
_smm_px_max_size=524288=500M
_pga_max_size=214732800=200M
  • _SMM_MAX_SIZEパラメータの値は、単一のサーバープロセスが使用可能な最大Wokrareaサイズを意味します。
    上記例を見るとPATの値を1Gに指定しても、実際の一つのサーバプロセスが使用可能な最大Workareaは100Mに制限されます。
  • _SMM_PX_MAX_SIZEパラメータの値は、単一の並列実行に属する並列スレーブが使用可能な最大Workareaサイズを意味します。
    上記例を見るとすべての並列スレーターこれらの使用可能なWorkarea領域の最大サイズは500Mに制限されます。
  • _PGA_MAX_SIZEパラメータの値は、単一のサーバープロセスが使用可能な最大PGAサイズを意味します。
    PGAはWokareaほかSession情報、Cursor情報などの情報を含んでいます。

Hash/ Sort操作との関係

PGA_AGGREGATE_TARGETパラメータによって指定されたWorkareaの大きさは、Hash作業とSort操作のパフォーマンスを決定する重要な値です。使用可能なWorkareaのサイズに応じてHash/ Sort操作がOptimal、OnepassまたはMultipassで実行され、どのような方法で実行されるのかに応じて、Hash/ Sort操作のパフォーマンスが大幅に違ってきます。Hash/ Sort操作は可能なOptimalやOnepass方法で実行する必要があり、PGA_AGGREGATE_TARGETの値を利用してWorkareaのサイズを増やすことが可能です。
V$ SQL_WORKAREA、V$ SQL_WORKAREA_ACTIVEビューを利用すると、各SQLカーソルごとWorkareaをどのように使用するか、いくつかの実行方法(Optimal、Onepass、Multipass)を使用したかの情報を簡単に確認することができます。
V$ SQL_WORKAREA_HISTOGRAMビューを使用すると、Workareaのサイズグループごとに実行する分布を知ることができます。

SELECT low_optimal_size AS low, high_optimal_size as high,
  optimal_executions as optimal,
  onepass_executions as onepass,
  multipasses_executions as multipass
FROM V$SQL_WORKAREA_HISTOGRAM
LOW	HIGH	OPTIMAL	ONEPASS	MULTIPASS
0	1023	     0	      0	        0
1024	2047	    0	      0	        0
2048	4095	 701796	      0	        0
4096	8191	    4	      0	        0
8192	16383	    6	      0	        0
16384	32767	   0	      0	        0
32768	65535         0	      0	        0
...

非常に大きなSort Areaが必要な場合

非常に大きなサイズのデータをSortしようとする場合には、大きいサイズのWorareaを必要とします。
しかし、PGA_AGGREGATE_TARGETを使用している場合は、各サーバプロセスが使用可能な最大Workareaのサイズが、Oracleによって一定の大きさに制限されます。オラクルによって指定されたサイズ以上のSort Areaが必要な場合には、そのセッションに対してWORKAREA_SIZE_POLICYの値をManualに切り替える方法を使用することができます。以下に簡単な例を示します。

ALTER SESSION SET WORKAREA_SIZE_POLICY = MANUAL;
ALTER SESSION SET SORT_AREA_SIZE = 2000000;

関連情報

  1. _SMM_MAX_SIZEパラメータ
  2. _SMM_PX_MAX_SIZEパラメータ
  3. _PGA_MAX_SIZEパラメータ
  4. HASH_AREA_SIZEパラメータ
  5. SORT_AREA_SIZEパラメータ
  6. SORT_AREA_RETAINED_SIZEパラメータ
  7. WORK_AREA_SIZE_POLICYパラメータ
  8. MEMORY_TARGETパラメータ
  9. direct path write temp待機イベント
  10. direct path read temp待機イベント
  11. V$ SQL_WORKAREAビュー
  12. V$ SQL_WORKAREA_ACTIVEビュー
  13. V$ SQL_WORKAREA_HISTOGRAMビュー
  14. 10032 Event
  15. 10033 Event
  16. 10046 Event
  17. 10104 Event

分析例

PGA_AGGREGATE_TARGET整合性分析

OS Free Memory使用量とPGA_AGGREGATE_TARGET

Free Memory推移

分析しようとするインスタンスは、早朝の時間はOS Free Memoryが1G程度で十分に維持されるが、業務時間にはFree Memoryがほとんどない場合を取り上げます。(13時11分には、Free Memoryが55MBある)

5_4_1

Total Session推移

早朝には、Total Sessionが100個程度を維持するか、業務時間にはMax550個まで増加します。

5_4_2

Free MemoryとTotal Session推移比較

Sessionsが増加し、Sessionが割り当てられたPGA MemoryをSessionがReleaseされるまで保有することになるので、継続的にSessionが増加する場合、Free Memoryは持続的に減少することになります。

5_4_3

PGAメモリーの使用状況を確認

パラメータ
_pga_max_size           = 209715200 Bytes -> 200MB
_smm_max_size         = 40089 KB -> 약 40MB
pga_aggregate_target = 821035008 Bytes -> 783MB
V$PGA_TARGET_ADVICE

5_4_4

結論

1つのSessionに割り当てられているPGA MemoryのMax Sizeは、上記の設定で確認して見たとき40Mまで割り当てることができます。
基本的に割り当てられているPGA MemoryはSessionがInactive SessionにStatusが変更されてもOSに返却せずに、当該セッションが保有することになるので、継続的にPGA Memory Sizeが増加することになります。
それほどOS Free Memoryは減少することになりますが、その増加値はPGA_AGGREGATE_TARGETに割り当てられたサイズまで増加することになり、これ以上増加しません。
20時間のlogons sessionのパターンを見ると、業務時間に増加していたセッションは、早朝の時間に戻ってreleaseになってFree Memoryが1G程度を維持するようになって業務時間にtotal sessionsが増加し、Free Memoryが減少をする一連のパターンを維持している。営業時間のセッションの増加による通常のメモリの使用が非業務時間と比較され、問題となると判断することができる余地があります。
つまり、この場合は、異常な事由によるFree Memory減少ではないと判断されます。


CONTACT

他社に頼らず自社でデータベースを監視・運用をしませんか?
MaxGaugeがサポートします

お役立ち資料は
こちらから

不明点がある方は、
こちらからお問い合わせください

お電話でのお問い合わせはこちら

平日 10時~18時

人気記事ランキング

タグ一覧