pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #2 Tweet
実は_pga_max_sizeの扱いがOracle10g R2以降ひっそりと変更されていた!という事実。Season2という後付けのタイトルで後日談を書いておきましたので次いでに見ておくとちょっとは幸せになるかも…
pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? Season2 #1
pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? その2回目、
自動PGAメモリー管理下ではどのようにPGAが割り当てられているのか確認して見ることに…
はじめは、
Oracle10g R1 for MacOS X Server (32bit) / MacOS X 10.4.11 Server PPC G5 Dual 2.7Ghz RAM:1GB
という環境から。
SYS> select * from v$version;
BANNER
----------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Prod
PL/SQL Release 10.1.0.3.0 - Production
CORE 10.1.0.3.0 Production
TNS for MacOS X Server: Version 10.1.0.3.0 - Production
NLSRTL Version 10.1.0.3.0 - Production
SYS>
以下、隠しパラメータも含めて(多めに表示してますが気にしないで・・)確認!
赤字のパラメータはいろいろ関わってくるから気にしておくと吉だけど、隠しパラメータは基本的にユーザがかってに変更するパラメータではないので、Oracle社さんからの指示に従ってね :-)
ちなみに、隠しパラメータは、パラメータ名称の先頭が "_"になっているパラメータのこと。かってに変更されては困るからマニュアルにも記載されていないパラメータのこと。
英語圏のブログを検索するときは、hidden parameters なんてキーワード含めるといいよ!
SYS> @show_param
KSPPINM KSPPSTVL KSPPSTDF
------------------------------ ------------------------------ ------------------------------
_4031_sga_dump_interval 3600 TRUE
_4031_sga_max_dumps 10 TRUE
_lock_sga_areas 0 TRUE
_pga_large_extent_size 1048576 TRUE
_pga_max_size 209715200 FALSE
_use_ism_for_pga TRUE TRUE
lock_sga FALSE TRUE
pga_aggregate_target 104857600 FALSE
pre_page_sga FALSE TRUE
sga_max_size 293601280 TRUE
sga_target 293601280 FALSE
11行が選択されました。
SYS>
SYS> show parameter workarea_size_policy
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
workarea_size_policy string AUTO
SYS>
隠しパラメータは通常はshow parameterコマンドでは表示されないけど一旦設定してあげると表示されるようになるんだよ〜。
_pga_max_size隠しパラメータのデフォルト値は200MBなんだけどあえて設定してやることでshow parameterコマンドで確認できるようにしてあります。
マネしないでね、してもいいけど自己責任でお願いします (^^;;;
SYS> show parameter pga
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
_pga_max_size big integer 200M
pga_aggregate_target big integer 100M
SYS>
SYS> @pgastat
NAME size(MB)
-------------------------------------------------- ----------
aggregate PGA target parameter 100
aggregate PGA auto target 76.6142578
global memory bound 5
SYS>
最後の結果は、v$pgastatビューを問い合わせているんですが、一番のポイントは赤字部分のglobal memory boundなのでよ〜〜〜〜く覚えておいてね (^^
以下、ここまでで使ったスクリプト。
・show_param.sql
set linesize 200
col ksppinm for a30
col ksppstvl for a30
col ksppstdf for a30
select
a.ksppinm
,b.ksppstvl
,b.ksppstdf
from
x$ksppi a join x$ksppcv b
on a.indx = b.indx
where
a.ksppinm like '%pga%'
or a.ksppinm like '%sga%'
or a.ksppinm like 'memory%'
order by
a.ksppinm
/
・pgastat.sql
set linesize 200
col name for a50
select
name
,value/1024/1024 "size(MB)"
from
v$pgastat
where
name in (
'aggregate PGA target parameter'
,'aggregate PGA auto target'
,'global memory bound'
)
/
というこで、引っぱりまくってますが、Oracle10g R1 (32bit)編、次回へつづく。
前回までのあらすじ・・・
・pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #1
| 固定リンク | 0
コメント