基本的な特徴
セッション終了とともにPGAも開放される。
PGAに関する初期化パラメータ
初期化パラメータ |
|
|
pga_aggregate_target |
当項目設定値を超えない範囲内でPGA合計を自動調整(目標値) |
|
pga_aggregate_limit |
当項目設定値を超えるようになるとプロセスやセッションを強制的に中断や終了がはじまる |
この値を超えるとORA-04036が発生する |
初期化パラメータ確認SQL
select name,type,value from
V$PARAMETER2 where upper(name) like upper('%PGA%') order by name
;
セッション毎のPGA使用状況確認
確認SQL
select t.INST_ID,t.SID,t.SERIAL#
--,to_char(t.LOGON_TIME,'MM/DD HH24:MI:SS') LOGON_TIME
,t.USERNAME,t.STATUS
,LAST_CALL_ET
,t.SQL_ID,t.SQL_CHILD_NUMBER
,round(b.PGA_USED_MEM/1024/1024)
PGA_USED_MEM_MBYTE -- 現在使用PGAメモリ
,round(b.PGA_ALLOC_MEM/1024/1024)
PGA_ALLOC_MEM_MBYTE -- 現在割り当てPGAメモリ
,round(b.PGA_MAX_MEM/1024/1024)
PGA_MAX_MEM_MBYTE -- 割り当て最大PGAメモリ
,round(b.PGA_FREEABLE_MEM/1024/1024)
PGA_FREEABLE_MEM_MBYTE -- 解放できる割当て済PGAメモリ
,p.SEGTYPE,p.BLOCKS
from GV$SESSION t
inner join GV$PROCESS b
on t.PADDR = b.ADDR and t.INST_ID = b.INST_ID
left outer join GV$TEMPSEG_USAGE p
on t.SADDR = p.SESSION_ADDR and t.SERIAL# = p.SESSION_NUM and t.INST_ID = p.INST_ID
where 1=1
and t.TYPE='USER'
;
確認例
PGA PGA PGA PGA
SQL USED ALLOC MAX FREEABLE
INST CHILD MEM MEM MEM MEM
ID SID SERIAL# USERNAME STATUS LAST_CALL_ET SQL_ID NUMBER MBYTE MBYTE MBYTE MBYTE SEGTYPE BLOCKS
---- ----- ------- -------------- ---------- ------------ ------------- ------ ------ ----- ----- -------- ------- -------
1 237 62087 SYS INACTIVE 49978 1h50ks4ncswfn 2 4 6 1
1 17 59821 SOONI INACTIVE 1 1 2 2 0
1 255 39772 SYSTEM INACTIVE 184 2 4 22 1
1 251 31704 SYSTEM ACTIVE 0 0qa3d17c17bhr 0 2 3 6 1
1 30 31211 SOONI INACTIVE 0 c5u8w9v99136n 0 5 6 81 0 SORT 57600
1 258 28533 SOONI INACTIVE 37783 2 3 15 0
6行が選択されました。
SQL>
SQL*Plus表示用
set lin 300
set pagesize 50
COLUMN INST_ID HEADING 'INST|ID'
COLUMN USERNAME FORMAT A14
COLUMN STATUS FORMAT A10
COLUMN SQL_ID FORMAT A13
COLUMN LOGON_TIME FORMAT A14
COLUMN SQL_CHILD_NUMBER FORMAT A13
COLUMN SQL_CHILD_NUMBER HEADING 'SQL|CHILD|NUMBER'
COLUMN PGA_USED_MEM_MBYTE FORMAT A13
COLUMN PGA_USED_MEM_MBYTE HEADING 'PGA|USED|MEM|MBYTE'
COLUMN PGA_ALLOC_MEM_MBYTE HEADING 'PGA|ALLOC|MEM|MBYTE'
COLUMN PGA_MAX_MEM_MBYTE HEADING 'PGA|MAX|MEM|MBYTE'
COLUMN PGA_FREEABLE_MEM_MBYTE HEADING 'PGA|FREEABLE|MEM|MBYTE'
COLUMN INST_ID FORMAT 90
COLUMN SERIAL# FORMAT 999990
COLUMN SID FORMAT 9990
COLUMN PGA_ALLOC_MEM_MBYTE FORMAT 9990
COLUMN PGA_MAX_MEM_MBYTE FORMAT 9990
COLUMN PGA_FREEABLE_MEM_MBYTE FORMAT 9990
COLUMN SQL_CHILD_NUMBER FORMAT 990
COLUMN PGA_USED_MEM_MBYTE FORMAT 99990
COLUMN SEGTYPE FORMAT A7
COLUMN BLOCKS FORMAT 999990
V$PGASTATでPGAの使用状況を確認する
select * from V$PGASTAT
;
DBA_HIST_PGASTATでPGAメモリー使用量に関する履歴統計情報を確認する
select * from DBA_HIST_PGASTAT
;