pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #9 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? その9回目、
_pga_max_sizeはデフォルトの200MBのままで、pga_aggregate_targetを256MB/512MB/768MB/1GB/2GB/4GB/8GB/16GB/4095GBと増加させてみる。
Oracle10g R2 for MacOS X x86_64版では、Oracle10g R1までと違い、pga_aggregate_target * 0.2を割り当てているということまでは見る事ができた。
以前のリリースのように _pga_max_size * 0.5と比べて小さい値を使うのだと仮定すれば、 LEAST(pga_aggregate_target * 0.2, _pga_max_size * 0.5)となっているんでしょうね。きっと。
とすると… 256MB/512MB/768MB/1GB/2GB/4GB/8GB/16GB/4095GBとpga_aggregate_targetを増加させると、256MBの場合だけ _pga_max_size * 0.5 を下回る。pga_aggregate_targetが512MB以上、かつ_pga_max_sizeがデフォルトの200MBの場合、global memory boundは常に100MBになるはず。
じゃ、確かめてみよう!
SYS> alter system set pga_aggregate_target=256m;
システムが変更されました。
SYS> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_pga_max_size big integer 200M
pga_aggregate_target big integer 256M
SYS> @pgastat
NAME size(MB)
-------------------------------------------------- ----------
aggregate PGA target parameter 256
aggregate PGA auto target 213.855469
global memory bound 51.1992188
SYS>
SYS> alter system set pga_aggregate_target=512m;
システムが変更されました。
SYS> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_pga_max_size big integer 200M
pga_aggregate_target big integer 512M
SYS>
SYS> @pgastat
NAME size(MB)
-------------------------------------------------- ----------
aggregate PGA target parameter 512
aggregate PGA auto target 443.979492
global memory bound 100
やはり、ここで変化しましたね!
SYS> alter system set pga_aggregate_target=768m;
システムが変更されました。
SYS> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_pga_max_size big integer 200M
pga_aggregate_target big integer 768M
SYS> @pgastat
NAME size(MB)
-------------------------------------------------- ----------
aggregate PGA target parameter 768
aggregate PGA auto target 674.384766
global memory bound 100
SYS> alter system set pga_aggregate_target=1g;
システムが変更されました。
SYS> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_pga_max_size big integer 200M
pga_aggregate_target big integer 1G
SYS> @pgastat
NAME size(MB)
-------------------------------------------------- ----------
aggregate PGA target parameter 1024
aggregate PGA auto target 905.053711
global memory bound 100
SYS> alter system set pga_aggregate_target=2g;
システムが変更されました。
SYS> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_pga_max_size big integer 200M
pga_aggregate_target big integer 2G
SYS> @pgastat
NAME size(MB)
-------------------------------------------------- ----------
aggregate PGA target parameter 2048
aggregate PGA auto target 1826.63965
global memory bound 100
SYS> alter system set pga_aggregate_target=4g;
システムが変更されました。
SYS> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_pga_max_size big integer 200M
pga_aggregate_target big integer 4G
SYS> @pgastat
NAME size(MB)
-------------------------------------------------- ----------
aggregate PGA target parameter 4096
aggregate PGA auto target 3669.82031
global memory bound 100
SYS> alter system set pga_aggregate_target=8g;
システムが変更されました。
SYS> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_pga_max_size big integer 200M
pga_aggregate_target big integer 8G
SYS> @pgastat
NAME size(MB)
-------------------------------------------------- ----------
aggregate PGA target parameter 8192
aggregate PGA auto target 7356.19043
global memory bound 100
SYS> alter system set pga_aggregate_target=16g;
システムが変更されました。
SYS> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_pga_max_size big integer 200M
pga_aggregate_target big integer 16G
SYS> @pgastat
NAME size(MB)
-------------------------------------------------- ----------
aggregate PGA target parameter 16384
aggregate PGA auto target 14728.9131
global memory bound 100
SYS>
・・・中略・・・
SCOTT> @test2
SQL_TEXT OPERATION_TYPE last_mem(MB) LAST_TEMPSEG_SIZE MAX_TEMPSEG_SIZE
---------------------------------------- -------------------- ------------ ----------------- ----------------
select * from code where rownum <= 10000 SORT (v2) 100.02 409993216 409993216
0 order by code
SCOTT>
・・・中略・・・
SYS> alter system flush shared_pool;
システムが変更されました。
SYS> alter system set pga_aggregate_target=4095g;
システムが変更されました。
SYS> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_pga_max_size big integer 200M
pga_aggregate_target big integer 4095G
SYS>
SYS> @pgastat
NAME size(MB)
-------------------------------------------------- ----------
aggregate PGA target parameter 4193280
aggregate PGA auto target 3773925.04
global memory bound 100
・・・中略・・・
SCOTT> @test2
SQL_TEXT OPERATION_TYPE last_mem(MB) LAST_TEMPSEG_SIZE MAX_TEMPSEG_SIZE
---------------------------------------- -------------------- ------------ ----------------- ----------------
select * from code where rownum <= 10000 SORT (v2) 100.02 409993216 409993216
0 order by code
SCOTT>
予想通り、 LEAST(pga_aggregate_target * 0.2, _pga_max_size * 0.5) となっている模様〜。まだまだつづきますよ〜 :)
前回までのあらすじ・・・
・pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #1
・pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #2
・pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #3
・pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #4
・pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #5
・pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #6
・pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #7
・pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #8
| 固定リンク | 0
コメント