PGA情報を確認する

Pocket

【概要】
PGAの情報を取得して、SGAのサイズ等を考慮しつつメモリ・サイズを決定する。
PGAの自動メモリの割り当てをするには、パラメータPGA_AGGREGATE_TARGETを設定します。
PGA_AGGREGATE_TARGETを0以外の値に設定した場合、一部のメモリ領域のサイズを必要に応じて
Oracleが自動的に変更します。
11gからは更にこの自動管理機能が強化されてMEMORY_TARGETというパラメータが登場して
SGAと合わせて自動管理ができる。
【SQL文】
/*
|| ■PGA情報を確認する
||
|| 【項目の説明】
|| NAME :統計名。この列に表示される名前はOracle Databaseリリース全体で安定に保たれ、
||  カスタマ・スクリプトで信頼して利用できる。
||   SESSION PGA MEMORY 使用中のPGAの値
||   SESSION PGA MEMORY MAX セッションが確立されてから現時点までのPGAの最大値
|| SESSION UGA MEMORY 使用中のUGAの値
|| SESSION UGA MEMORY MAX セッションが確立されてから現時点までのUGAの最大値
|| USERNAME 接続しているユーザー名
|| SID セッションID
|| SERIAL# :セッション・シリアル番号
|| OSUSER :OSユーザー名
|| MACHINE :OSマシン名
|| PROGRAM :OSのプログラム名
|| SERVER :サーバー・タイプ
|| VALUE :PGAまたはUGAのメモリーサイズ
*/
set echo off
set line 150
set pages 1000

clear col
ttitle off

col NAME for a25
col USERNAME for a10
col SID for 999
col SERIAL# for 99,999,999
col OSUSER for a20
col MACHINE for a15
col PROGRAM for a20
col SERVER for a10
col VALUE for 99,999,999

ttitle left ‘■■■ PGA情報 ■■■’
spool pga_info.lis

SELECT sn.name NAME
, ss.username USERNAME
, ss.sid SID
, ss.serial# SERIAL#
, ss.osuser OSUSER
, ss.machine MACHINE
, ss.program PROGRAM
, ss.server SERVER
, st.value VALUE
FROM v$sesstat st
, v$statname sn
, v$session ss
WHERE st.sid = ss.sid
AND st.statistic# = sn.statistic#
AND ss.username IS NOT NULL
AND sn.name IN ( ‘session pga memory’
,’session pga memory max’
,’session uga memory’
‘ ,’session uga memory max’)
ORDER BY ss.sid, sn.name
;
spool off
clear col
ttitle off
set line 80

以上です (^^♪