PGA AGGREGATE TARGET
目次[非表示]
- 1.基本情報
- 2.注意
- 2.1.PGA/ Workareaサイズ
- 2.2.Hash/ Sort操作との関係
- 2.3.非常に大きなSort Areaが必要な場合
- 3.関連情報
- 4.分析例
- 4.1.PGA_AGGREGATE_TARGET整合性分析
- 4.2.OS Free Memory使用量とPGA_AGGREGATE_TARGET
- 4.2.1.Free Memory推移
- 4.2.2.Total Session推移
- 4.2.3.Free MemoryとTotal Session推移比較
- 4.2.4.PGAメモリーの使用状況を確認
- 4.2.4.1.パラメータ
- 4.2.4.2.V$PGA_TARGET_ADVICE
- 4.2.5.結論
基本情報
パラメータ情報
説明
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に設定されたことは何を意味するかを下の例で見てみましょう。
|
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のサイズグループごとに実行する分布を知ることができます。
非常に大きなSort Areaが必要な場合
非常に大きなサイズのデータをSortしようとする場合には、大きいサイズのWorareaを必要とします。
しかし、PGA_AGGREGATE_TARGETを使用している場合は、各サーバプロセスが使用可能な最大Workareaのサイズが、Oracleによって一定の大きさに制限されます。オラクルによって指定されたサイズ以上のSort Areaが必要な場合には、そのセッションに対してWORKAREA_SIZE_POLICYの値をManualに切り替える方法を使用することができます。以下に簡単な例を示します。
関連情報
|
分析例
PGA_AGGREGATE_TARGET整合性分析
OS Free Memory使用量とPGA_AGGREGATE_TARGET
Free Memory推移
分析しようとするインスタンスは、早朝の時間はOS Free Memoryが1G程度で十分に維持されるが、業務時間にはFree Memoryがほとんどない場合を取り上げます。(13時11分には、Free Memoryが55MBある)
Total Session推移
早朝には、Total Sessionが100個程度を維持するか、業務時間にはMax550個まで増加します。
Free MemoryとTotal Session推移比較
Sessionsが増加し、Sessionが割り当てられたPGA MemoryをSessionがReleaseされるまで保有することになるので、継続的にSessionが増加する場合、Free Memoryは持続的に減少することになります。
PGAメモリーの使用状況を確認
パラメータ
V$PGA_TARGET_ADVICE
結論
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減少ではないと判断されます。