« pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #7 | トップページ | pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #9 »

2010年5月11日 (火) / Author : Hiroshi Sekiguchi.

pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #8

2010/11/25追記
実は_pga_max_sizeの扱いがOracle10g R2以降ひっそりと変更されていた!という事実。Season2という後付けのタイトルで後日談を書いておきましたので次いでに見ておくとちょっとは幸せになるかも…
pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? Season2 #1

pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? その8回目、

Oracle10g R1の場合と同様に、_pga_max_sizeパラメータはデフォルト(200BMMB)のまま、pga_aggregate_targetを10MBスタートして増加させて確認していきますよ〜。

SYS> alter system set pga_aggregate_target=10m;

システムが変更されました。

SYS> show parameter pga

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_pga_max_size big integer 200M
pga_aggregate_target big integer 10M
SYS>
SYS> @pgastat

NAME size(MB)
-------------------------------------------------- ----------
aggregate PGA target parameter 10
aggregate PGA auto target 4
global memory bound 2

SYS>

・・・中略・・・

SCOTT> @test2

SQL_TEXT OPERATION_TYPE last_mem(MB) LAST_TEMPSEG_SIZE MAX_TEMPSEG_SIZE
---------------------------------------- -------------------- ------------ ----------------- ----------------
select * from code where rownum <= 10000 SORT (v2) 2.01 409993216 409993216
0 order by code

SCOTT>

あれ、Oracle10g R1までの頃と割り当てられてるサイズが違う! pga_aggregate_targetが10MBなのに0.5MBではなく、2MB。つまり20%が割り当てられてます。

SYS> alter system flush shared_pool;

システムが変更されました。

SYS> alter system set pga_aggregate_target=20m;

システムが変更されました。

SYS> show parameter pga

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_pga_max_size big integer 200M
pga_aggregate_target big integer 20M
SYS>
SYS> @pgastat

NAME size(MB)
-------------------------------------------------- ----------
aggregate PGA target parameter 20
aggregate PGA auto target 4
global memory bound 4

・・・中略・・・

SCOTT> @test2

SQL_TEXT OPERATION_TYPE last_mem(MB) LAST_TEMPSEG_SIZE MAX_TEMPSEG_SIZE
---------------------------------------- -------------------- ------------ ----------------- ----------------
select * from code where rownum <= 10000 SORT (v2) 4.04 409993216 409993216
0 order by code

SCOTT>

・・・中略・・・

SYS> alter system flush shared_pool;

システムが変更されました。

SYS> alter system set pga_aggregate_target=40m;

システムが変更されました。

SYS> show parameter pga

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_pga_max_size big integer 200M
pga_aggregate_target big integer 40M
SYS>
SYS> @pgastat

NAME size(MB)
-------------------------------------------------- ----------
aggregate PGA target parameter 40
aggregate PGA auto target 18.4570313
global memory bound 8

・・・中略・・・

SCOTT> @test2

SQL_TEXT OPERATION_TYPE last_mem(MB) LAST_TEMPSEG_SIZE MAX_TEMPSEG_SIZE
---------------------------------------- -------------------- ------------ ----------------- ----------------
select * from code where rownum <= 10000 SORT (v2) 8.04 409993216 409993216
0 order by code

SCOTT>

Oracle10g R1までの頃より、pgaの作業領域が大きく確保されるようになってるということもある程度見えましたが、まだばだ続きます。

注)パラレルクエリの場合はちょいと違いますからご注意を。余裕があったらやるかもしれないけど。:)


前回までのあらすじ・・・
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:

コメント

コメントを書く