Oracle SGA自動管理プロパティ(sga_targetパラメータ)
11244 ワード
最近、あるネットユーザーはOracle SGAメモリの自動管理特性についてよく知らない.当時翻訳されたOracle 10 g SGAの自動化管理が渋いためかもしれないが、以下はこの問題についてOracle 10 g環境で説明し、よりよく理解するための例を示す.
1、関連パラメータ記述a、パラメータSHARED_POOL_SIZE SHARED_POOL_SIZE = integer [K | M | G]
Default value If SGA_TARGET is set: If the parameter is not specified, then the default is 0 (internally determined by the Oracle Database). If the parameter is specified, then the user-specified value indicates a minimum value for the memory pool. If SGA_TARGET is not set (32-bit platforms): 32 M, rounded up to the nearest granule size. If SGA_TARGET is not set (64-bit platforms): 84 M, rounded up to the nearest granule size.Range of values Minimum:the granule size Maximum:operating system-dependent b、パラメータSGA_TARGETSGA_TARGET = integer [K | M | G] Default value 0 (SGA autotuning is disabled)
SGA_TARGET specifies the total size of all SGA components. If SGA_TARGET is specified, then the following memory pools are automatically sized: Buffer cache (DB_CACHE_SIZE) Shared pool (SHARED_POOL_SIZE) Large pool (LARGE_POOL_SIZE) Java pool (JAVA_POOL_SIZE) Streams pool (STREAMS_POOL_SIZE)
If these automatically tuned memory pools are set to non-zero values, then those values are used as minimum levels by AutomaticShared Memory Management. You would set minimum values if an application component needs a minimum amount of memory to function properly.
The following pools are manually sized components and are not affected by Automatic Shared Memory Management: Log buffer Other buffer caches, such as KEEP, RECYCLE, and other block sizes Fixed SGA and other internal allocations
The memory allocated to these pools is deducted from the total available for SGA_TARGET when Automatic Shared Memory Managementcomputes the values of the automatically tuned memory pools.
2、パラメータsga_targetがゼロの場合
3、パラメータsga_targetがゼロ値でない場合
4、小結a、設定sga_targetがゼロ以外の値の場合、以下のパラメータはsga_を受けます.targeの制御ですが、その総額はsgaを超えません.target.Buffer cache(DB_CACHE_SIZE)Shared pool(SHARED_POOL_SIZE)Large pool(LARGE_POOL_SIZE)Java pool(JAVA_POOL_SIZE)Streams pool(STREAM_POOL_SIZE)b、ゼロでないsga_targetの場合、いくつかのパラメータ間のサイズを動的に割り当てることができ、必要に応じて各部分のサイズを動的に調整することができる.c、sga_の場合targetがゼロ値でない場合、DB_も設定されていますCACHE_SIZEなど上記のいくつかのパラメータは、sga_targeは、設定した値よりも小さくない値を初期値として割り当てます.d、sga_を設定する場合targetがゼロの場合、SGA関連パラメータメモリの割り当てはパラメータによって制御され、システム状況に応じて動的にサイズを調整することはできない.f、Oracle 10 g以降SGAのメモリ管理をsga_に設定することを推奨するtarget動的管理.
その他の参照
PL/SQL-->カーソル
PL/SQL-->暗黙カーソル(SQL%FOUND)
一括SQLのFORALL文
大量SQLのBULK COLLECT句
PL/SQLセットの初期化と付与
PL/SQL連合配列とネスト表PL/SQL変長配列PL/SQL-->PL/SQL記録
SQL tuning手順
高効率SQL文必殺技
親カーソル、子カーソル、共有カーソル
バインド変数とそのメリットとデメリット
dbms_xplanのdisplay_cursor関数の使用
dbms_xplanのdisplay関数の使用
実行計画の各フィールドの各モジュールの説明
EXPLAIN PLANを使用したSQL文実行プランの取得
Oracle ROWID
NULL値とインデックス(一)
NULL値とインデックス(2)
AUTOTRACE機能の有効化
関数によりインデックス列が無効になります
Oracleバインド変数のスヌープ
Oracle適応共有カーソル
Oracle表領域およびデータファイルOracleパスワードファイルOracleパラメータファイルOracleオンラインREDOログ・ファイル(ONLINE LOG FILE)Oracle制御ファイル(CONTROOLFILE)Oracleアーカイブ・ログOracleロールバックおよびUNDO(UNDO)Oracleデータベース・インスタンス起動クローズ・プロセスOracle 10 g SGAの自動管理OracleインスタンスおよびOracleデータベース(Oracleアーキテクチャ)
1、関連パラメータ記述a、パラメータSHARED_POOL_SIZE SHARED_POOL_SIZE = integer [K | M | G]
Default value If SGA_TARGET is set: If the parameter is not specified, then the default is 0 (internally determined by the Oracle Database). If the parameter is specified, then the user-specified value indicates a minimum value for the memory pool. If SGA_TARGET is not set (32-bit platforms): 32 M, rounded up to the nearest granule size. If SGA_TARGET is not set (64-bit platforms): 84 M, rounded up to the nearest granule size.Range of values Minimum:the granule size Maximum:operating system-dependent b、パラメータSGA_TARGETSGA_TARGET = integer [K | M | G] Default value 0 (SGA autotuning is disabled)
SGA_TARGET specifies the total size of all SGA components. If SGA_TARGET is specified, then the following memory pools are automatically sized: Buffer cache (DB_CACHE_SIZE) Shared pool (SHARED_POOL_SIZE) Large pool (LARGE_POOL_SIZE) Java pool (JAVA_POOL_SIZE) Streams pool (STREAMS_POOL_SIZE)
If these automatically tuned memory pools are set to non-zero values, then those values are used as minimum levels by AutomaticShared Memory Management. You would set minimum values if an application component needs a minimum amount of memory to function properly.
The following pools are manually sized components and are not affected by Automatic Shared Memory Management: Log buffer Other buffer caches, such as KEEP, RECYCLE, and other block sizes Fixed SGA and other internal allocations
The memory allocated to these pools is deducted from the total available for SGA_TARGET when Automatic Shared Memory Managementcomputes the values of the automatically tuned memory pools.
2、パラメータsga_targetがゼロの場合
--# , sga_target=0, pool size,db_cache_size,
robin@SZDB:/u02/database/SYBO2SZ> grep size SYBO2SZ.ora.tmp
*.db_block_size=8192
*.db_cache_size=285212672
*.db_recovery_file_dest_size=1G
*.java_pool_size=4194304
*.large_pool_size=4194304
*.shared_pool_size=293601280
*.streams_pool_size=4194304
robin@SZDB:/u02/database/SYBO2SZ> grep target SYBO2SZ.ora.tmp
*.pga_aggregate_target=199229440
*.sga_target=0
--#
robin@SZDB:/u02/database/SYBO2SZ> sqlplus / as sysdba
idle> startup pfile=/u02/database/SYBO2SZ/SYBO2SZ.ora.tmp
ORACLE instance started.
--- sga_target 0
idle> show parameter sga_tar
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_target big integer 0
-->
idle> SELECT name, VALUE
2 FROM v$parameter
3 WHERE name IN
4 ('shared_pool_size',
5 'java_pool_size',
6 'streams_pool_size',
7 'log_buffer',
8 'db_cache_size',
9 'db_2k_cache_size',
10 'db_4k_cache_size',
11 'db_8k_cache_size',
12 'db_16k_cache_size',
13 'db_32k_cache_size',
14 'db_keep_cache_size',
15 'db_recycle_cache_size',
16 'large_pool_size');
NAME VALUE
------------------------------ --------------------
shared_pool_size 293601280
large_pool_size 4194304
java_pool_size 4194304
streams_pool_size 4194304
db_cache_size 285212672
db_2k_cache_size 0
db_4k_cache_size 0
db_8k_cache_size 0
db_16k_cache_size 0
db_32k_cache_size 0
db_keep_cache_size 0
db_recycle_cache_size 0
log_buffer 6120448
13 rows selected.
-- Author :Robinson
-- Blog :http://blog.csdn.net/robinson_0612
-- pfile spfile
idle> create spfile from pfile='/u02/database/SYBO2SZ/SYBO2SZ.ora.tmp';
File created.
3、パラメータsga_targetがゼロ値でない場合
-- db
idle> startup force;
ORACLE instance started.
idle> select distinct isspecified from v$spparameter;
ISSPEC
------
TRUE --> true spfile
FALSE
-- sga_max 572m
idle> show parameter sga_max
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_max_size big integer 572M
-- sga_target
idle> alter system set sga_target=572m;
System altered.
-- sga_target 576m, ,
idle> show parameter sga_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_target big integer 576M
-- 564m
idle> select (285212672+4194304+4194304+293601280+4194304)/1024/1024 from dual;
(285212672+4194304+4194304+293601280+4194304)/1024/1024
-------------------------------------------------------
564
-- , 4mb
idle> @mem_granule
NAME VALUE DESCBTION
----------------------------------- ------------------------------ ----------------------------
_ksmg_granule_size 4194304 granule size in bytes
_ksmg_granule_locking_status 1 granule locking status
-- 572m 4 , 576m
-- , sga_target<=sga_max_size
idle> select 576/4 from dual;
576/4
----------
144
-- spfile pfile sga_target
idle> create pfile='/tmp/tmp.ora' from spfile;
File created.
-- dbname sga_target
idle> ho grep size /tmp/tmp.ora
SYBO2SZ.__db_cache_size=285212672
SYBO2SZ.__java_pool_size=4194304
SYBO2SZ.__large_pool_size=4194304
SYBO2SZ.__shared_pool_size=297795584
SYBO2SZ.__streams_pool_size=4194304
*.db_block_size=8192
*.db_cache_size=285212672
*.db_recovery_file_dest_size=1G
*.java_pool_size=4194304
*.large_pool_size=4194304
*.shared_pool_size=293601280
*.streams_pool_size=4194304
--/tmp/tmp.ora sga_target 603979776=576m
idle> ho grep sga_target /tmp/tmp.ora
*.sga_target=603979776
-- /tmp/tmp.ora, ,
idle> vi /tmp/tmp.ora
idle> ho grep size /tmp/tmp.ora
SYBO2SZ.__db_cache_size=285212672
SYBO2SZ.__java_pool_size=4194304
SYBO2SZ.__large_pool_size=4194304
SYBO2SZ.__shared_pool_size=297795584
SYBO2SZ.__streams_pool_size=4194304
*.db_block_size=8192
#*.db_cache_size=285212672
*.db_recovery_file_dest_size=1G
#*.java_pool_size=4194304
#*.large_pool_size=4194304
#*.shared_pool_size=293601280
#*.streams_pool_size=4194304
--
idle> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
-- pfile
idle> startup pfile=/tmp/tmp.ora
ORACLE instance started.
-- sga_target 0
idle> SELECT name, VALUE
2 FROM v$parameter
3 WHERE name IN
4 ('shared_pool_size',
5 'java_pool_size',
6 'streams_pool_size',
7 'log_buffer',
8 'db_cache_size',
9 'db_2k_cache_size',
10 'db_4k_cache_size',
11 'db_8k_cache_size',
12 'db_16k_cache_size',
13 'db_32k_cache_size',
14 'db_keep_cache_size',
15 'db_recycle_cache_size',
16 'large_pool_size');
NAME VALUE
----------------------------------- ------------------------------
shared_pool_size 0
large_pool_size 0
java_pool_size 0
streams_pool_size 0
db_cache_size 0
db_2k_cache_size 0
db_4k_cache_size 0
db_8k_cache_size 0
db_16k_cache_size 0
db_32k_cache_size 0
db_keep_cache_size 0
db_recycle_cache_size 0
log_buffer 6120448
13 rows selected.
-- sga_max_size 576m, sga_target sga_max_size
idle> show parameter sga_max
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_max_size big integer 576M
4、小結a、設定sga_targetがゼロ以外の値の場合、以下のパラメータはsga_を受けます.targeの制御ですが、その総額はsgaを超えません.target.Buffer cache(DB_CACHE_SIZE)Shared pool(SHARED_POOL_SIZE)Large pool(LARGE_POOL_SIZE)Java pool(JAVA_POOL_SIZE)Streams pool(STREAM_POOL_SIZE)b、ゼロでないsga_targetの場合、いくつかのパラメータ間のサイズを動的に割り当てることができ、必要に応じて各部分のサイズを動的に調整することができる.c、sga_の場合targetがゼロ値でない場合、DB_も設定されていますCACHE_SIZEなど上記のいくつかのパラメータは、sga_targeは、設定した値よりも小さくない値を初期値として割り当てます.d、sga_を設定する場合targetがゼロの場合、SGA関連パラメータメモリの割り当てはパラメータによって制御され、システム状況に応じて動的にサイズを調整することはできない.f、Oracle 10 g以降SGAのメモリ管理をsga_に設定することを推奨するtarget動的管理.
その他の参照
PL/SQL-->カーソル
PL/SQL-->暗黙カーソル(SQL%FOUND)
一括SQLのFORALL文
大量SQLのBULK COLLECT句
PL/SQLセットの初期化と付与
PL/SQL連合配列とネスト表PL/SQL変長配列PL/SQL-->PL/SQL記録
SQL tuning手順
高効率SQL文必殺技
親カーソル、子カーソル、共有カーソル
バインド変数とそのメリットとデメリット
dbms_xplanのdisplay_cursor関数の使用
dbms_xplanのdisplay関数の使用
実行計画の各フィールドの各モジュールの説明
EXPLAIN PLANを使用したSQL文実行プランの取得
Oracle ROWID
NULL値とインデックス(一)
NULL値とインデックス(2)
AUTOTRACE機能の有効化
関数によりインデックス列が無効になります
Oracleバインド変数のスヌープ
Oracle適応共有カーソル
Oracle表領域およびデータファイルOracleパスワードファイルOracleパラメータファイルOracleオンラインREDOログ・ファイル(ONLINE LOG FILE)Oracle制御ファイル(CONTROOLFILE)Oracleアーカイブ・ログOracleロールバックおよびUNDO(UNDO)Oracleデータベース・インスタンス起動クローズ・プロセスOracle 10 g SGAの自動管理OracleインスタンスおよびOracleデータベース(Oracleアーキテクチャ)