メモリやI/O、競合などデータベースの性能に関係する情報を監視する項目です。
性能の監視を行う項目には、以下があります。
監視項目 | しきい値 | mount状態での監視(*) | ||
単位 | 設定可能範囲 | |||
全体 | データベースバッファキャッシュヒット率(%) | 0 ~ 100 | × | |
DEFAULT | ||||
KEEP | ||||
RECYCLE | ||||
DEFAULT(2K) | ||||
DEFAULT(4K) | ||||
DEFAULT(8K) | ||||
DEFAULT(16K) | ||||
DEFAULT(32K) | ||||
データディクショナリキャッシュミス率(%) | 0 ~ 100 | × | ||
ライブラリキャッシュミス率(%) | 0 ~ 100 | ○ | ||
未使用メモリの割合(%) | 0 ~ 100 | × | ||
未使用メモリ(byte) | 0 ~ 2147483647 | |||
COMMIT数(回) | 0 ~ 2147483647 | ○ | ||
SQL実行数(回) | 0 ~ 2147483647 | ○ | ||
ディスクREAD数(回) | 0 ~ 2147483647 | ○ | ||
ディスクWRITE数(回) | 0 ~ 2147483647 | ○ | ||
ラッチ獲得ミス率(%) | 0 ~ 100 | ○ | ||
ロールバックセグメント獲得率(%) | 0 ~ 100 | × | ||
領域割り当て待機回数の割合(%) | 0 ~ 100 | ○ | ||
領域割り当て待機回数 | 0 ~ 2147483647 | |||
REDO ログ・グループ数 | 0 ~ 2147483647 | ○ | ||
最大問い合わせ時間(sec:秒) | 0 ~ 2147483647 | ○ | ||
取得バッファ数 | 0 ~ 2147483647 | ○ | ||
要求キュー平均待機時間(msec:ミリ秒) | 0 ~ 2147483647 | × | ||
共有サーバプロセスの使用率(%) | 0 ~ 100 | ○ | ||
応答キュー平均待機時間(msec:ミリ秒) | 0 ~ 2147483647 | × | ||
ディスパッチャプロセスの使用率(%) | 0 ~ 100 | ○ |
(*) ○:監視可能、×:監視不可
■データベースバッファキャッシュヒット率
ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率を監視します。
注意
「データベースバッファキャッシュヒット率」を監視する際の注意事項
差分監視を行っているため、1回目の監視ではメッセージは通知されません。2回目の監視からメッセージが通知されます。
Oracleの仕様として、以下の処理を行うとヒット率が低下する場合があります。
表/索引の FULL SCAN
analyze .. compute/estimate/validate
dbms_stats
update や delete(索引を使用しない場合)
上記の処理(特にanalyzeやdbms_stats)が集中する場合は、その処理の前後で状態監視機能を一時停止/再開することを推奨します(ただし、この場合すべての状態監視機能が一時停止されます)。
バッファ・プールごとおよびマルチブロックサイズごとの監視では、Oracleのデータ・ディクショナリビュー(v$buffer_pool_statisticsビュー)を使用しています。このディクショナリ・ビューはOracle9.2.0.2以前のバージョンでは正確な値を取得できないことがありますので、ヒット率の目安としてお考えください。
データベースバッファキャッシュヒット率(全体)の監視は以下の方法で行います。
■Oracle8iの場合
(1)以下の3つの値をOracleから取得します。
db block gets (CURRENTブロック要求回数)・・・[a]
consistent gets (ブロックに対する読み取り一貫性要求回数)・・・[b]
physical reads - physical reads direct - physical reads direct(lob) (ディスクから読み込まれたブロック数)・・・[c]
(2)差分値を求めます。
各値の前回監視時からの増分値(前回と今回の差分値)をそれぞれ求めます。
(3)(2)で求めた結果を以下の計算式に当てはめて、バッファキャッシュヒット率を求めます(小数点以下切り上げ)。
バッファキャッシュヒット率(%) = (1-([c]の差分÷([a]の差分+[b]の差分)))×100
■Oracle9iの場合
(1)以下の2つの値をOracleから取得します。
session logical reads(ブロックにアクセスする要求の総数)・・・[a]
physical reads-physical reads direct-physical reads direct(lob)(ディスクから読み込まれたブロック数)・・・[c]
(2)差分値を求めます。
各値の前回監視時からの増分値(前回と今回の差分値)をそれぞれ求めます。
(3)(2)で求めた結果を以下の計算式に当てはめて、バッファキャッシュヒット率を求めます(小数点以下切り上げ)。
バッファキャッシュヒット率(%) = (1-([c]の差分÷[a]の差分))×100
■Oracle10g以降の場合
(1)以下の3つの値をOracleから取得します。
db block gets from cache (CURRENTブロック要求回数)・・・[a]
consistent gets from cache (ブロックに対する読み取り一貫性要求回数)・・・[b]
physical reads cache (ディスクから読み込まれたブロック数)・・・[c]
(2)差分値を求めます。
各値の前回監視時からの増分値(前回と今回の差分値)をそれぞれ求めます。
(3)(2)で求めた結果を以下の計算式に当てはめて、バッファキャッシュヒット率を求めます(小数点以下切り上げ)。
バッファキャッシュヒット率(%) = (1-([c]の差分÷([a]の差分+[b]の差分)))×100
データベースバッファキャッシュヒット率(バッファ・プールごとおよびマルチブロックサイズごと)の監視は以下の方法で行います。
(1)以下の3つの値をOracleから取得します。
db block gets(CURRENTブロック要求回数)・・・[a]
consistent gets(ブロックに対する読み取り一貫性要求回数)・・・[b]
physical reads(ディスクから読み込まれたブロック数)・・・[c]
(2)差分値を求めます。
各値の前回監視時からの増分値(前回と今回の差分値)をそれぞれ求めます。
(3)(2)で求めた結果を以下の計算式に当てはめて、バッファキャッシュヒット率を求めます(小数点以下切り上げ)。
バッファキャッシュヒット率(%) = (1-([c]の差分÷([a]の差分+[b]の差分)))×100
■データベースバッファキャッシュヒット率(全体)
インスタンス全体で、ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率を監視します。
v$sysstat
データベースバッファキャッシュヒット率(%)
0 ~ 100 (%)
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
一般的にはヒット率が90 %以上であれば問題ないとされています。
この場合の推奨しきい値は0 ~89 %です。
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 | 重要度 |
0 ~89 (%) | 警告 |
FOR-01000 データベースバッファキャッシュヒット率(全体)がx%になりました。
一般的に、バッファキャッシュヒット率が低く、全表スキャンを実行しないようにアプリケーションがチューニングされている場合は、キャッシュのサイズを増やすことを検討してください。
■データベースバッファキャッシュヒット率(DEFAULT)
BUFFER_POOL句が明示的に指定されていないオブジェクトはDEFAULTバッファ・プールを使用します。このDEFAULTバッファ・プールにおいて、ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率を監視します。
v$buffer_pool_statistics
データベースバッファキャッシュヒット率(%)
0 ~ 100 (%)
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
一般的にはDEFAULTバッファ・プールのヒット率は60 ~ 70 %以上であれば問題ないとされています。この場合の推奨しきい値は 0 ~ 59 (%)です。
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 | 重要度 |
0 ~ 59 (%) | 警告 |
FOR-01018 データベースバッファキャッシュヒット率(DEFAULT)がx%になりました。
■データベースバッファキャッシュヒット率(KEEP)
KEEPバッファ・プールは、オブジェクトをメモリ上に維持することができ、物理I/Oをできるだけ抑止することができます。頻繁に使うオブジェクトがメモリ上に存在しているため、他のバッファ・プールより高いヒット率となることが予測されます。
このKEEPバッファ・プールにおいて、ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率を監視します。
v$buffer_pool_statistics
データベースバッファキャッシュヒット率(%)
0 ~100 (%)
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
KEEP バッファ・プールのヒット率は、必ずしも100 %である必要はありませんが、一般的には99 %以上が目標とされています。
この場合の推奨しきい値は0 ~ 98 (%)です。
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 | 重要度 |
0 ~ 98 (%) | 警告 |
FOR-01019 データベースバッファキャッシュヒット率(KEEP)がx%になりました。
■データベースバッファキャッシュヒット率(RECYCLE)
RECYCLEバッファ・プールは、不要となったブロックを速やかにメモリ上から除外させることができます。このRECYCLEバッファ・プールにおいて、ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率を監視します。
v$buffer_pool_statistics
データベースバッファキャッシュヒット率(%)
0 ~ 100 (%)
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
RECYCLE バッファ・プールは、メモリ上に維持する必要のないオブジェクトに対して使用するため、ヒット率は低くてもかまわないとされています。つまりヒット率が0 でもかまいません。
このため、推奨しきい値はありません。各環境において監視したい値の範囲をしきい値に設定してください。
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 | 重要度 |
0 ~ 30 (%) | 警告 |
FOR-01020 データベースバッファキャッシュヒット率(RECYCLE)がx%になりました。
■データベースバッファキャッシュヒット率(DEFAULT(2K))
ブロックサイズが2Kの場合のDEFAULTバッファ・プールにおいて、ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率を監視します。
v$buffer_pool_statistics
データベースバッファキャッシュヒット率(%)
0 ~ 100 (%)
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
一般的にはDEFAULTバッファ・プールのヒット率は60 ~ 70 %以上であれば問題ないとされています。
この場合の推奨しきい値は0 ~59 (%)です。
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 | 重要度 |
0 ~ 59 (%) | 警告 |
FOR-01021 データベースバッファキャッシュヒット率(DEFAULT(2K))がx%になりました。
■データベースバッファキャッシュヒット率(DEFAULT(4K))
ブロックサイズが4Kの場合のDEFAULTバッファ・プールにおいて、ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率を監視します。
v$buffer_pool_statistics
データベースバッファキャッシュヒット率(%)
0 ~ 100 (%)
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
一般的にはDEFAULTバッファ・プールのヒット率は60 ~ 70 %以上であれば問題ないとされています。
この場合の推奨しきい値は0 ~59 (%)です。
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 | 重要度 |
0 ~ 59 (%) | 警告 |
FOR-01022 データベースバッファキャッシュヒット率(DEFAULT(4K))がx%になりました。
■データベースバッファキャッシュヒット率(DEFAULT(8K))
ブロックサイズが8Kの場合のDEFAULTバッファ・プールにおいて、ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率を監視します。
v$buffer_pool_statistics
データベースバッファキャッシュヒット率(%)
0 ~ 100 (%)
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
一般的にはDEFAULTバッファ・プールのヒット率は60 ~ 70 %以上であれば問題ないとされています。
この場合の推奨しきい値は0 ~59(%)です。
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 | 重要度 |
0 ~ 59 (%) | 警告 |
FOR-01023 データベースバッファキャッシュヒット率(DEFAULT(8K))がx%になりました。
■データベースバッファキャッシュヒット率(DEFAULT(16K))
ブロックサイズが16Kの場合のDEFAULTバッファ・プールにおいて、ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率を監視します。
v$buffer_pool_statistics
データベースバッファキャッシュヒット率(%)
0 ~ 100 (%)
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
一般的にはDEFAULTバッファ・プールのヒット率は60 ~ 70 %以上であれば問題ないとされています。
この場合の推奨しきい値は0 ~59 (%)です。
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 | 重要度 |
0 ~ 59 (%) | 警告 |
FOR-01024 データベースバッファキャッシュヒット率(DEFAULT(16K))がx%になりました。
■データベースバッファキャッシュヒット率(DEFAULT(32K))
ブロックサイズが32Kの場合のDEFAULTバッファ・プールにおいて、ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率を監視します。
v$buffer_pool_statistics
データベースバッファキャッシュヒット率(%)
0 ~ 100 (%)
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
一般的にはDEFAULTバッファ・プールのヒット率は60 ~ 70 %以上であれば問題ないとされています。
この場合の推奨しきい値は0 ~59(%)です。
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 | 重要度 |
0 ~ 59 (%) | 警告 |
FOR-01025 データベースバッファキャッシュヒット率(DEFAULT(32K))がx%になりました。
■データディクショナリキャッシュミス率
データディクショナリ情報がメモリ内で見つからなかった割合を監視します。
v$rowcache
(1)以下の値をOracleから取得します。
・getmissesの合計(キャッシュ・ミスになったデータ要求回数)・・・[a]
・getsの合計(情報要求の合計件数)・・・[b]
(2)以下の計算式に当てはめてディクショナリキャッシュミス率を求めます(小数点以下切り上げ)。
ディクショナリキャッシュミス率[%] = ([a]÷[b])×100
データディクショナリキャッシュミス率(%)
0 ~ 100 (%)
各環境で監視したい値のミス率の範囲(n ~ 100)をしきい値に設定してください。
一般的にはミス率が15%以下であれば問題ないとされています。
この場合の推奨しきい値は16 ~ 100 (%)です。
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
このデフォルトしきい値を使用する場合は、設定したあとに各環境でテストを行い、しきい値のチューニングを行うことを推奨します。
しきい値条件 | 重要度 |
16 ~ 100 (%) | 警告 |
FOR-01001 データディクショナリキャッシュミス率がx%になりました。
一般的に、ディクショナリキャッシュのミス率が高い場合は、共有プールサイズを大きくすることを検討します。
■ライブラリキャッシュミス率
ライブラリキャッシュでのSQL文の再解析やSQL領域割り当ての割合を監視します。
v$librarycache
(1)以下の2つ値をOracleから取得します。
・reloadsの合計(実行ステップでのライブラリキャッシュミス数)・・・[a]
・pinsの合計(あるオブジェクトに対する読込みまたは実行数)・・・[b]
(2)以下の計算式に当てはめてライブラリキャッシュミス率を求めます(小数点以下切り上げ)。
ライブラリキャッシュミス率[%] = ([a]÷[b])×100
ライブラリキャッシュミス率(%)
0 ~ 100 (%)
各環境で監視したい値のミス率の範囲(n ~ 100)をしきい値に設定してください。
一般的には1桁前半であれば問題ないとされています。
この場合の推奨しきい値は 6 ~ 100 (%)です。
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 | 重要度 |
6 ~ 100 (%) | 警告 |
FOR-01002 ライブラリキャッシュミス率がx%になりました。
一般的に、ライブラリキャッシュのミス率が高い場合は、共有プールサイズを大きくすることを検討します。
■SGA内のメモリ空き状況
SGA内の共有プール、ラージ・プールおよびJavaプールのメモリ不足を監視します。
注意
「SGA内メモリ空き状況」を監視する際の注意事項
以下の機能を使用している場合は監視を行いません。
自動共有メモリ管理(Oracle10g以降)
自動メモリ管理(Oracle11g以降)
v$sgastat
v$parameter
v$instance
(1)以下の値をOracleから取得します。
・POOLごとのSGA内メモリ全体領域[byte]・・・[a]
・POOLごとのSGA内メモリ空き領域[byte]('shared_pool_size','java_pool_size','large_pool_size'ごとの'free memory')・・・[b]
(*)ただし、Oracle9.0.1の場合は、‘large_pool_size’は監視していません。
(2)指定された単位によって、以下の計算を行います(小数点以下切り上げ)。
SGA内の未使用メモリの割合[%] = ([b]÷[a])×100
SGA内の未使用メモリ[byte]
(A)未使用メモリの割合(%)
(B)未使用メモリ(byte)
(A)0 ~ 100
(B)0 ~ 2147483647
各環境でのSGA内の空きメモリについて、「監視したい値の範囲」または「全体領域に対する空き領域の割合」をしきい値に設定してください。
なし
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値単位 | しきい値条件 | 重要度 |
未使用メモリの割合(%) | 0 ~ 5 (%) | 警告 |
(A)FOR-01012 SGA内の未使用メモリの割合がx%になりました。(プール名)
(B)FOR-01012 SGA内の未使用メモリがybytesになりました。(プール名)
一般的に、未使用メモリの割合が少ない場合は、SGAのメモリ領域を再検討する必要があります。
■COMMIT数
システムが想定しているしきい値を超えているかどうかを監視します。
しきい値を超えた場合、見積り以上にシステムに負荷がかかっていることが予想されます。
注意
「COMMIT数」を監視する際の注意事項
差分監視を行っているため、1回目の監視ではメッセージは通知されません。2回目の監視からメッセージが通知されます。
v$sysstat
(1)以下の2つ値をOracleから取得します。
・現在の時間
・user commits(ユーザ・コミットの数)・・・[a]
(2)前回監視時から経過した時間と、user commitsの増分値を求めます。
(3)指定された単位時間あたりのuser commitsの値を計算します(小数点以下切り上げ)。
単位時間あたりのCOMMIT数[回] = ([a]の増分値[回]÷前回監視時からの経過時間[分])×指定された単位時間[分]
例
単位時間あたりのCOMMIT数の計算例
前回からの経過時間:60分
前回からのCOMMIT数の増分:60回
指定された単位時間:5分
⇒ 単位時間あたりのCOMMIT数 = (60[回]÷60[分])×5[分] = 5[回]
COMMIT数(回)
0 ~ 2147483647
各環境で監視したいCOMMIT数の値の範囲をしきい値に設定してください。
なし
なし
FOR-01003 COMMIT数がx回/y分になりました。
■SQL実行数
システムが想定しているしきい値を超えているかどうかを監視します。
しきい値を超えた場合、見積り以上にシステムに負荷がかかっていることが予想されます。
注意
「SQL実行数」を監視する際の注意事項
差分監視を行っているため、1回目の監視ではメッセージは通知されません。2回目の監視からメッセージが通知されます。
v$sysstat
(1)以下の2つ値をOracleから取得します。
・現在の時間
・execute count(SQL文を実行するコールの合計数)・・・[a]
(2)前回監視時から経過した時間と、execute countの増分値を求めます。
(3)指定された単位時間あたりのexecute countの値を計算します(小数点以下切り上げ)。
単位時間あたりのSQL実行数[回] = ([a]の増分値[回]÷前回監視時からの経過時間[分])×指定された単位時間[分]
例
単位時間あたりのSQL実行数の計算例
前回からの経過時間:60分
前回からのSQL実行数の増分:60回
指定された単位時間:5分
⇒ 単位時間あたりのSQL実行数 = (60[回]÷60[分])×5[分] = 5[回]
SQL実行数(回)
0 ~ 2147483647
各環境で監視したいSQL実行数の値の範囲をしきい値に設定してください。
なし
なし
FOR-01004 SQL実行数がx回/y分になりました。
■ディスクREAD数
システムが想定しているしきい値を超えているかどうかを監視します。
しきい値を超えた場合、見積り以上にシステムに負荷がかかっていることが予想されます。
注意
「ディスクREAD数」を監視する際の注意事項
差分監視を行っているため、1回目の監視ではメッセージは通知されません。2回目の監視からメッセージが通知されます。
前回の監視時には存在したファイルが、今回の監視時に存在しない場合は監視対象からはずします。
今回の監視で新たに存在を確認したファイルは監視対象とし、次回から差分監視を行います。
v$filestat
v$tempstat
v$datafile
v$tempfile
(1)以下の値をOracleから取得します。
・現在の時間
・phyrds(各データファイル・テンポラリファイル単位の値)・・・[a]
(2)前回監視時から経過した時間と、ファイルごとのphyrdsの増分値を求めます。
(3)指定された単位時間あたりのphyrdsの値を計算します(小数点以下切り上げ)。
単位時間あたりのディスクREAD数[回] = ([a]の増分値[回]÷前回監視時からの経過時間[分])×指定された単位時間[分]
例
単位時間あたりのディスクREAD数の計算例
前回からの経過時間:60分
前回からのphyrdsの増分値:60回
指定された単位時間:5分
⇒ 単位時間あたりのディスクREAD数 = (60[回]÷60[分])×5[分] = 5[回]
ディスクREAD数(回)
0 ~ 2147483647
各環境で監視したいディスクREAD数の値の範囲をしきい値に設定してください。
なし
なし
FOR-01005 ディスクREAD数がx回/y分になりました。(ファイルタイプ ファイル番号:ファイル名)
■ディスクWRITE数
システムが想定しているしきい値を超えているかどうかを監視します。
しきい値を超えた場合、見積り以上にシステムに負荷がかかっていることが予想されます。
注意
「ディスクWRITE数」を監視する際の注意事項
差分監視を行っているため、1回目の監視ではメッセージは通知されません。2回目の監視からメッセージが通知されます。
前回の監視時には存在したファイルが、今回の監視時に存在しない場合は監視対象からはずします。
今回の監視で新たに存在を確認したファイルは監視対象とし、次回から差分監視を行います。
v$filestat
v$tempstat
v$datafile
v$tempfile
(1)以下の値をOracleから取得します。
・現在の時間
・phywrts(各データファイル・テンポラリファイル単位の値)・・・[a]
(2)前回監視時から経過した時間と、ファイルごとのphywrtsの増分値を求めます。
(3)指定された単位時間あたりのphywrtsの値を計算します(小数点以下切り上げ)。
単位時間あたりのディスクWRITE数[回] = ([a]の増分値[回]÷前回監視時からの経過時間[分])×指定された単位時間[分]
例
単位時間あたりのディスクWRITE数の計算例
前回からの経過時間:60分
前回からのphywrtsの増分値:60回
指定された単位時間:5分
⇒ 単位時間あたりのディスクWRITE数 = (60[回]÷60[分])×5[分] = 5[回]
ディスクWRITE数(回)
0 ~ 2147483647
各環境で監視したいディスクWRITE数の値の範囲をしきい値に設定してください。
なし
なし
FOR-01006 ディスクWRITE数がx回/y分になりました。(ファイルタイプ ファイル番号:ファイル名)
■ラッチ獲得ミス率
Oracle内のメモリにアクセスする時に獲得するラッチ(ロック)のミス率を監視することにより、ラッチの競合を監視します。
v$latch
(1)以下の値をOracleから取得します。
・misses(待機可能モードで要求され、リクエスタが待機する必要があった回数)・・・[a]
・gets(待機可能モードで要求された回数)・・・[b]
(*)ただし、gets = 0 の場合は監視しません。
(2)以下の計算式に当てはめてラッチ獲得ミス率を求めます(小数点以下切り上げ)。
ラッチ獲得ミス率[%] = ([a]÷[b])×100
ラッチ獲得ミス率(%)
0 ~ 100
各環境でのラッチ獲得ミス率について監視したい値の範囲(n~ 100)をしきい値に設定してください。
一般的にはミス率が1 ~ 3 %であれば問題ないとされています。
この場合の推奨しきい値は4 ~ 100 (%)です。
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 | 重要度 |
4 ~ 100 (%) | 警告 |
FOR-01013 ラッチ獲得ミス率がx%になりました。(ラッチ名)
一般的に、ラッチ獲得ミス率が高い場合は、ラッチの競合が発生していることが考えられますが、チューニング方法はラッチによって異なります。
詳細はOracle管理者に確認してください。
■ロールバックセグメント獲得率
ロールバックセグメント獲得時に発生する競合の割合を監視します。
注意
「ロールバックセグメント獲得率」を監視する際の注意事項
差分監視を行っているため、1回目の監視ではメッセージは通知されません。2回目の監視からメッセージが通知されます。
自動UNDO管理モード、手動UNDO管理モードのどちらでも監視を行います。
自動UNDO管理モードの場合にOracleに管理を任せる場合は、この項目の監視は必要ありません。
v$rollstat
(1)以下の値をOracleから取得します。
・gets(ヘッダー取得回数)の合計・・・[a]
・waits(ヘッダー待機回数)の合計・・・[b]
(2)上記2つの値の前回監視時からの増分値を求めます。
(3)差分をとった結果から以下の計算を行います(小数点以下切り上げ)。
ロールバックセグメントの獲得率[%](オンラインロールバックセグメントのヒット率)= (([a]-[b])÷[a])×100
ロールバックセグメント獲得率(%)
0 ~ 100
各環境でのロールバックセグメントの獲得率について監視したい値の範囲(0~n)をしきい値に設定してください。
一般的には99 %以上を理想としています。
この場合の推奨しきい値は0 ~ 98 (%)です。
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
Oracle推奨しきい値より狭くなっていますが、これは、Oracleが推奨するしきい値では環境によっては常にメッセージが通知されてしまう可能性があるためです。
ただし、50%より低い状態となった場合は競合が発生していると考えられるため、重要度を「最重要」としてメッセージを通知します。
しきい値条件 | 重要度 |
0 ~ 50 (%) | 最重要 |
FOR-01010 ロールバックセグメントの獲得率がx%になりました。
一般的にロールバックセグメントに競合が発生した場合は、ロールバックセグメントの数を増やすことを検討します。
■REDO ログ・バッファの領域割り当て競合監視
「REDO ログ・バッファの領域割り当てを待機した回数」の値、または、この回数と「REDO ログ・バッファにコピーされるREDOエントリー回数」との割合を監視します。
この値が大きいと領域割り当てのリクエストの競合が発生していることになり、パフォーマンスが悪くなるとされています。
注意
「REDOログ・バッファの領域割り当て競合監視」を行う際の注意事項
差分監視を行っているため、1回目の監視ではメッセージは通知されません。2回目の監視からメッセージが通知されます。
v$sysstat
(1)以下の値をOracleから取得します。
・REDOログ・バッファの領域割り当てを待機した回数・・・[a]
・REDOログ・バッファにコピーされるREDOエントリー回数・・・[b]
(2)上記2つの値の前回監視時からの増分値を求めます。
(3)差分をとった結果から、指定された単位によって、以下の値を算出します(小数点以下切り上げ)。
領域割り当て待機回数の割合(%) = ([a]÷[b])×100
領域割り当て待機回数 = [a]
(A)領域割り当て待機回数の割合(%)
(B)領域割り当て待機回数
(A)0 ~ 100
(B)0 ~ 2147483647
各環境でのREDO ログ・バッファの領域割り当てを待機した回数または、待機した回数の割合について監視したい値の範囲(n ~ 100)をしきい値に設定してください。
(A)
「REDO ログ・バッファの領域割り当てを待機した回数」と「REDO ログ・バッファにコピーされるREDO エントリー回数」の割合は、1 %以下が理想とされています。この場合の推奨しきい値は2 ~ 100 (%)です。
(B)
「REDOログ・バッファの領域割り当てを待機した回数」の値は、0 が理想とされています。しかし、Oracleの仕様として、ログ・スイッチが行われたタイミングでも「REDOログ・バッファの領域割り当てを待機した回数」の値がカウントされることがあります。データベースが起動していればログ・スイッチは必ず行われるため、「REDOログ・バッファの領域割り当てを待機した回数」の値が常に0 になることはありません。
このため、この値に対する推奨しきい値はありません。監視したい「REDOログ・バッファの領域割り当てを待機した回数」値の範囲をしきい値に設定してください。
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値単位 | しきい値条件 | 重要度 |
領域割り当て待機回数の割合(%) | 2 ~ 100 (%) | 警告 |
(A)FOR-01027 REDO ログ・バッファの領域割り当てを待機した回数の割合がx%になりました。
(B)FOR-01027 REDO ログ・バッファの領域割り当てを待機した回数がyになりました。
一般的にREDOログ・バッファ内の領域を待機する必要があったことを表しているので、必要に応じてREDO ログ・バッファの領域を増やすことを検討します。
■書き込み可能なREDO ログ・グループの監視
アーカイブ・モードの場合(Oracle10g以降の場合は自動アーカイブ・モードおよび手動アーカイブ・モードの場合)に、書き込み可能(再利用可能)なREDO ログ・グループの残り数を監視します。
書き込み可能なREDO ログ・グループの残り数が0になった場合は、現在使用中のREDOログがいっぱいになった時点で更新処理が行えなくなります。
注意
「書き込み可能なREDO ログ・グループの監視」を行う際の注意事項
アーカイブが完了しており、使用可能な状態(statusがUNUSEDまたはINACTIVE)を書き込み可能な状態とします。
RAC(「Real Application Clusters」の略称)インスタンスの場合は、スレッドごとに監視を行います。
v$log
v$bgprocess
v$parameter
v$database
以下の値をOracleから取得します。
・書き込み可能な状態の残りのREDO ログ・グループ数
・スレッド番号(補足情報)
・REDOログ・グループの総数(補足情報)
・起動しているARCプロセス数(補足情報)
・アーカイブ・モード(補足情報)
REDOログ・グループ数
0 ~ 2147483647
各環境で監視したい書き込み可能なREDO ログ・グループの残り数の範囲をしきい値に設定してください。
なし
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
書き込み可能なREDO ログ・グループの残りの数が0になった場合は現在使用中のREDO ログがいっぱいになった時点で、更新処理が実行できなくなります。デフォルトしきい値では、書き込み可能なREDOログ・グループ数が1 以下になったときに重要度「最重要」でメッセージを通知します。
しきい値条件 | 重要度 |
0 ~ 1 | 最重要 |
FOR-01042 書き込み可能なREDO ログ・グループ数の残りがxになりました。(THREAD#=num1, REDO_CNT=num2, ARC_CNT=num3, chr4=num4)
スレッド番号(通常1、RACの場合は自分のインスタンスのスレッド番号がどれか、調査項目一覧の「RAC構成情報」を参照してください)
REDOログ・グループの総数(RACの場合は表示されているスレッド番号での総数)
起動しているARCプロセス数(RACの場合は自インスタンスで起動しているプロセスの数)
Oracle9i以前の場合:LOG_ARCHIVE_START
Oracle10g以降の場合:LOG_MODE
Oracle9i以前の場合:「TRUE」(自動アーカイブ・モード)または「FALSE」(手動アーカイブ・モード)
Oracle10g以降の場合:「ARCHIVELOG」(自動アーカイブ・モード)または「MANUAL」(手動アーカイブ・モード)
アーカイブできない原因を調査する必要があります。
■UNDO セグメントの読み取り一貫性の監視
Oracle9iからの自動UNDO管理モードでのUNDOセグメントの読み取り一貫性について監視します。
監視期間中の最大問い合わせ時間を監視します。
問い合わせ時間が長い場合、問い合わせ中にUNDOレコードが残っていないとORA-01555のエラーが発生する可能性があります。初期化パラメタ「UNDO_RETENTION」を使用してこの時間が保持できるように調整してください。
注意
「UNDOセグメントの読み取り一貫性の監視」を行う際の注意事項
差分監視を行っているため、1回目の監視ではメッセージは通知されません。2回目の監視からメッセージが通知されます。
UNDO表領域のサイズが初期化パラメタ「UNDO_RETENTION」で指定された期間のUNDO情報を格納しておく領域サイズよりも小さい場合は、初期化パラメタ「UNDO_RETENTION」で指定した期間より前にデータが上書きされるため監視していてもORA-01555のエラーが発生するため、注意が必要です(十分な領域が必要です)。
v$parameter
v$undostat
以下の値をOracleから取得します。
・現在の時間
・現在の時間
・前回の監視以降で実行された最大問い合わせの長さ(秒数)
・初期化パラメタに設定されている「UNDO_RETENTION」の値(補足情報)
・最大問い合わせの時間に使用されたUNDOブロックの数/秒(補足情報)
最大問い合わせ時間(sec:秒)
0 ~ 2147483647
各環境で監視したい最大問い合わせ時間の範囲をしきい値に設定してください。
なし
しきい値のデフォルト値はありませんが、[初期化パラメタ「UNDO_RETENTION」の値の80~90%程度]~[最大(2147483647)]の範囲をしきい値に設定し、重要度を「警告」とすることを推奨します。
FOR-01040 最大問い合わせ時間がxsecになりました。(UNDO_RETENTION=num1, UPS=num2)
初期化パラメタ「UNDO_RETENTION」の値
最大問い合わせの時間に使用されたUNDOブロックの数/秒
一般的に、UNDO_RETENTIONパラメタを使用してこの時間問い合わせレコードを保持できるように調整します。
■1カーソル実行あたりの取得バッファ数
共有SQL領域に存在する1回のカーソル実行で取得するバッファの合計数が多いSQL文を監視します。
v$sqlarea
v$sqlarea
v$containers
(1)以下の値をOracleから取得します。
・buffer_gets(すべての子カーソルについて、取得したバッファの合計数)・・・[a]
・executions(すべての子カーソルについて、実行回数の合計数)・・・[b]
・このカーソルの親に対するハンドルのアドレス(補足情報)
・カレント・カーソルのSQLテキスト(補足情報)
(*)ただし、executions = 0 の場合、監視は行いません。
(2)以下の計算式に当てはめて1回のカーソル実行で取得するバッファ数を求めます(小数点以下切り上げ)。
1カーソル実行あたりの取得バッファ数 = [a]÷[b]
取得バッファ数
0 ~ 2147483647
各環境で監視したい1カーソル実行あたりの取得バッファ数の範囲をしきい値に設定してください。
なし
なし
FOR-01033 1カーソル実行あたりの取得バッファ数がxになりました。(info)
ADDRESS=<このカーソルの親に対するハンドルのアドレス>,
[DB=<コンテナ名>, ]
SQL="<カレント・カーソルのSQLテキストの最初の100文字>"
(*)コンテナ名は、監視対象のOracleがCDBの場合のみ表示されます。
データベースが起動してからの要求キューの平均待機時間を監視します。
平均待機時間が一貫して増加する場合は、共有サーバの競合が発生している可能性があります。
注意
「要求キュー平均待機時間」の監視を行う際の注意事項
初期化パラメタ「TIMED_STATISTICS」に「TRUE」が設定されていないと、Oracleの仕様により待機時間に値が格納されないため、正しい平均待機時間を監視できません。
この監視を行う場合は、初期化パラメタ「TIMED_STATISTICS」に「TRUE」を設定してください。
v$queue
v$shared_server
(1)以下の値をOracleから取得します。
wait(このキュー内の全項目のうち、サーバが処理するものの待機時間の合計)・・・[a]
totalq(これまでキューに入れられた項目のうち、サーバが処理するものの合計数)・・・[b]
共有サーバプロセスの数(補足情報)
(*)ただし、totalq = 0の場合、監視は行いません。
また、サーバの状態が終了(STATUS=QUIT)となっているものは共有サーバプロセス数には数えません。
(2)以下の計算式に当てはめて1項目当たりの平均待機時間を求めます(小数点以下切り上げ)。
平均待機時間 = [a]÷[b]
要求キュー平均待機時間(msec:ミリ秒)
0 ~ 2147483647
各環境で監視したい要求キューの1キュー当たりの平均待機時間の範囲をしきい値に設定してください。
なし
なし
FOR-01035 要求キューの1キュー当たりの平均待機時間がxmsecになりました。(info)
SHARED PROCESS=<共有サーバプロセスの数>
(*)共有サーバプロセス数は、STATUSがQUITのプロセスは除きます。
一般的に、共有サーバでのリソース競合を検出した場合は、まず、共有プールとラージ・プールを調査し、これがメモリ競合でないことを確認します。
パフォーマンスが改善されない場合は、共有サーバプロセス競合を低減するためにさらにリソースを作成してください。
共有サーバプロセスの使用率を監視します。
v$shared_server
(1)以下の値をOracleから取得します。
busyの合計(1/100秒単位の合計ビジー時間)・・・[a]
idleの合計(1/100秒単位の合計アイドル時間)・・・[b]
共有サーバプロセスの数(補足情報)
共通キューから取り出された要求の合計回数(補足情報)
(*)ただし、サーバの状態が終了(STATUS=QUIT)となっているものは監視しません。
(2)以下の計算式に当てはめて共有サーバプロセスの使用率を求めます(小数点以下切り上げ)。
共有サーバプロセスの使用率[%] = ([a]÷([a]+[b]))×100
共有サーバプロセスの使用率(%)
0 ~ 100
各環境で監視したい共有サーバプロセスの使用率の範囲をしきい値に設定してください。
なし
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
デフォルトしきい値では、使用率が98 %以上になった場合に、警告メッセージを通知します。
しきい値条件 | 重要度 |
98 ~ 100 (%) | 警告 |
FOR-01036 共有サーバプロセスの使用率がx%になりました。(info)
SHARED PROCESSES=<共有サーバプロセスの数>,REQUESTS=<共通キューから取り出された要求の合計回数>
(*)共有サーバプロセス数は、STATUSがQUITのプロセスは除きます。
一般的に、REQUESTSが少なく、非常に高い使用率(100%に近い値)の場合、専用サーバ接続の方が適していることがあります。
データベースが起動してからの応答キューの平均待機時間を監視します。
平均待機時間が一貫して増加する場合は、ディスパッチャの競合が発生している可能性があります。
注意
「応答キュー平均待機時間」の監視を行う際の注意事項
初期化パラメタ「TIMES_STATISTICS」に「TRUE」が設定されていないと、Oracleの仕様により待機時間に値が格納されないため、正しい平均待機時間を監視できません。
この監視を行う場合は、初期化パラメタ「TIMES_STATISTICS」に「TRUE」を設定してください。
v$queue
v$dispatcher
(1)以下の値をOracleから取得します。
wait(このキュー内の全項目のうち、dispatcherが処理するものの待機時間の合計)・・・[a]
totalq(これまでキューに入れられた項目のうち、dispatcherが処理するものの合計数)・・・[b]
ディスパッチャプロセス名(補足情報)
(*)ただし、totalq = 0 の場合は監視しません。
(2)以下の計算式に当てはめて応答キューの1キュー当たりの平均待機時間を求めます(小数点以下切り上げ)。
応答キュー平均待機時間[msec] = [a]÷[b]
応答キュー平均待機時間(msec:ミリ秒)
0 ~ 2147483647
各環境で監視したい応答キューの1キュー当たりの平均待機時間の範囲をしきい値に設定してください。
なし
なし
FOR-01037 応答キューの1キュー当たりの平均待機時間がxmsecになりました。(info)
ディスパッチャプロセス名
一般的に、平均待機時間が確実に増加し続ける場合は、ディスパッチャを追加することによって、そのディスパッチャ・グループを使用してOracle に接続するユーザ・プロセスのパフォーマンスを改善できる可能性があります。
ディスパッチャプロセスの使用率を監視します。
v$dispatcher
(1)以下の値をOracleから取得します。
busy(1/100秒単位の合計ビジー時間)・・・[a]
idle(1/100秒単位の合計アイドル時間)・・・[b]
ディスパッチャプロセス名(補足情報)
(2)以下の計算式に当てはめてディスパッチャプロセスの使用率を求めます(小数点以下切り上げ)。
ディスパッチャプロセスの使用率[%] = ([a]÷([a]+[b]))×100
ディスパッチャプロセスの使用率(%)
0 ~ 100
各環境で監視したいディスパッチャプロセスの使用率の範囲をしきい値に設定してください。
なし
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
デフォルトしきい値では、使用率が50%以上になった場合に、警告メッセージを通知します。
しきい値条件 | 重要度 |
50 ~ 100 (%) | 警告 |
FOR-01038 ディスパッチャプロセスの使用率がx%になりました。(info)
ディスパッチャプロセス名
一般的に、使用率が50%を超える場合、ディスパッチャ数を増やすことを検討します。