pga_aggregate_targetでPGA?、_pga_max_sizeでPGA? #1 Tweet
かな〜り間が空きましたが、久々にMac De Oracleっぽいネタにしました〜w
pga_aggregate_targetというか_pga_max_sizeパラメータというかPGAに割り当てられるSORTやhash-joinなどのサイズ絡みの話をいくつかのプロジェクトでしてたらOracle10g R2以降は割当る割合が変わったよね〜なんて話が出てた事もあり、実際はどーなーのよー。という事で調べてみる事にした。
Oracle9i R2までのお話は、過去記事や国内外のブログでも沢山書かれているのでそちらも参考にしてもらうよろしいかと…
・sizing pga_aggregate_target and pga_max_size for Oracle
・The _PGA_MAX_SIZE hidden parameter
・新・ソートに関する検証
・32bitと64bitのOracle10gでも_pga_max_sizeの値は同じ。
・Mac De Oracle なんですが、Windows(32bit)でのOracleな話 #2
確認方法は、前述した新・ソートに関する検証の検証方法を参考に進めて行くことにした。
pga_aggregate_target関連の話でかつ、日本語の記事だとここが一番分かりやすい。感謝。
今回対象としたのは以下のプラットフォームとリリースのOracle
・Oracle10g R1 for MacOS X Server (32bit) / MacOS X 10.4.11 Server PPC G5 Dual 2.7Ghz RAM:1GB
・Oracle10g R2 for MacOS X Server (64bit) / MacOS X 10.6.3 Core2 Duo 2.2Ghz RAM:2GB
・Oracle11g R1 for Linux x86 (32bit) / CentOS 5.4 Pentium M 1Ghz RAM:768MB
・Oracle11g R2 for Linux x86 (32bit) / CentOS 5.4 Pentium M 1Ghz RAM:768MB
まず、検証対象の全データベースのSCOTTスキーマに以下の表とデータを登録しておく! :)
SCOTT> create table code (code varchar2(4000));
表が作成されました。
SCOTT> begin for i in 1..100000 loop insert into code values(lpad('#',4000,'#')); end loop; commit; end;
2 /
PL/SQLプロシージャが正常に完了しました。
SCOTT> exec dbms_stats.gather_table_stats(ownname=>'SCOTT',tabname=>'CODE',estimate_percent=>100);
PL/SQLプロシージャが正常に完了しました。
SCOTT>
SCOTT> l
1 select
2 blocks*block_size/1024/1024 as "table_size(MB)"
3 from
4 user_tables ut join user_tablespaces uts
5 on ut.tablespace_name = uts.tablespace_name
6* and ut.table_name = 'CODE'
SCOTT> /
table_size(MB)
--------------
782.101563
SCOTT>
ということで、次回へつづく。 (^^
| 固定リンク
コメント