• 検索結果がありません。

動的パフォーマンス・ビューV$LIBRARYCACHEを調べることで、ライブラリ・キャッシュの アクティビティを反映する統計を監視できます。これらの統計は、最新のインスタンス起動以 降のライブラリ・キャッシュのアクティビティを反映しています。

このビューの各行には、ライブラリ・キャッシュ内に保持される項目の1つに対応する統計が 収録されます。各行ごとに記述される項目は、NAMESPACE列の値によって識別されます。次の NAMESPACE値を持つ行は、SQL文とPL/SQLブロックのライブラリ・キャッシュのアクティ ビティを反映します。

SQL AREA

TABLE/PROCEDURE

BODY

TRIGGER

他のNAMESPACE値を持つ行は、Oracleが依存関係のメンテナンスのために使用するオブジェ クト定義に対するライブラリ・キャッシュのアクティビティを反映します。

各NAMESPACEを個々に調べるには、次の問合せを使用します。

SELECT NAMESPACE, PINS, PINHITS, RELOADS, INVALIDATIONS FROM V$LIBRARYCACHE

ORDER BY NAMESPACE;

この問合せの出力例を次に示します。

NAMESPACE PINS PINHITS RELOADS INVALIDATIONS -- --- --- --- ---BODY 8870 8819 0 0 CLUSTER 393 380 0 0 INDEX 29 0 0 0 OBJECT 0 0 0 0 PIPE 55265 55263 0 0 SQL AREA 21536413 21520516 11204 2 TABLE/PROCEDURE 10775684 10774401 0 0 TRIGGER 1852 1844 0 0

ライブラリ・キャッシュ・ヒット率を計算するには、次の計算式を使用します。

Library Cache Hit Ratio = sum(pinhits) / sum(pins)

ライブラリ・キャッシュ・ヒット率の計算式を使用すると、キャッシュ・ヒット率は次のよう になります。

SUM(PINHITS)/SUM(PINS) .999466248

関連項目関連項目

関連項目関連項目: 動的パフォーマンス・ビューV$LIBRARYCACHE の詳細は、

『Oracle Databaseリファレンス』を参照してください。

注意 注意 注意

注意: これらの問合せでは、ある時間間隔で収集された統計ではなく、

インスタンス起動時からのデータを戻します。時間間隔の統計の方が、よ り的確に問題を特定できます。

関連項目 関連項目 関連項目

関連項目: ある時間間隔の情報を収集する方法の詳細は、第6章「自動 パフォーマンス診断」を参照してください。

戻されたデータを調べると、次のことがわかります。

SQL AREAのNAMESPACEでは、21,536,413回の実行がありました。

11,204回の実行でライブラリ・キャッシュ・ミスが発生したため、文またはブロックを暗

黙的に再解析するか、またはライブラリ・キャッシュから除去されている場合は、オブ ジェクト定義を再ロード(すなわち、RELOAD)する必要があります。

SQL文は2回無効化されたため、再度ライブラリ・キャッシュ・ミスが発生しました。

ヒット率は約99.94%です。これは、実行の0.06%のみが再解析されたことを意味します。

共有プールの空きメモリーの容量は、V$SGASTATでレポートされます。次の問合せを使用して このビューの現在の値についてレポートを作成します。

SELECT * FROM V$SGASTAT WHERE NAME = 'free memory' AND POOL = 'shared pool';

The output will be similar to the following:

POOL NAME BYTES - --- ---shared pool free memory 4928280

共有プール内に使用可能な空きメモリーが常にある場合、プールのサイズを増やしても、効果 はほとんど(または、まったく)ありません。また、共有プールがいっぱいというだけでは、

問題があるとはいえません。これは、適切に構成されたシステムであることを示している場合 があります。

共有プールのアドバイザ統計 共有プールのアドバイザ統計 共有プールのアドバイザ統計 共有プールのアドバイザ統計

ライブラリ・キャッシュに使用可能なメモリー量は、Oracleインスタンスの解析率に大きな影 響を与えます。共有プールのアドバイザ統計から、データベース管理者はライブラリ・キャッ シュ・メモリーについての情報を得ることができ、共有プールのサイズ変更が共有プール内の オブジェクトの除去にどのように影響するかを予測できます。

共有プールのアドバイザ統計では、共有プール・メモリーにおけるライブラリ・キャッシュの 使用率が追跡され、異なるサイズの共有プールでライブラリ・キャッシュがどのように動作す るかが予測されます。2つの固定ビューにより、ライブラリ・キャッシュのメモリー使用量、

現在の確保量、共有プールのLRUリスト上にある量、さらに共有プールのサイズ変更により損 失または獲得できる時間を判別する情報が提供されます。

共有プールのアドバイザ統計では、次のビューが使用できます。共有プール・アドバイザをオ ンにすると、これらのビューにはあらゆるデータが表示されます。共有プール・アドバイザを オフにすると、それらの統計がリセットされます。

V$SHARED_POOL_ADVICE このビューには、共有プールのサイズを変更した場合の、見積り解析 時間に関する情報が表示されます。サイズの範囲は、同じ時間間隔で、現在の共有プール・サ イズまたは確保されたライブラリ・キャッシュ・メモリー量の10%のうち大きい方の値から、

現在の共有プール・サイズの200%までです。時間間隔の値は、共有プールの現在のサイズに よって異なります。

V$LIBRARY_CACHE_MEMORY このビューには、別のNAMESPACEのライブラリ・キャッシュの

メモリー・オブジェクトに割り当てられるメモリーに関する情報が表示されます。メモリー・

オブジェクトとは、効率的な管理を行うためのメモリーの内部グループ化です。ライブラリ・

キャッシュ・オブジェクトは1つ以上のメモリー・オブジェクトで構成されます。

V$JAVA_POOL_ADVICEおよびおよびおよびおよびV$JAVA_LIBRARY_CACHE_MEMORY これらのビューには、Javaに使 用されるライブラリ・キャッシュ・メモリーについての情報を追跡し、Javaプールのサイズ変 更が解析率に及ぼす影響を予測する、Javaプール・アドバイザ統計が含まれます。

V$JAVA_POOL_ADVICEには、プールのサイズを変更した場合の、Javaプールの見積り解析時 間に関する情報が表示されます。サイズの範囲は、同じ時間間隔で、現在のJavaプール・サイ ズまたは確保されたJavaライブラリ・キャッシュ・メモリー量の10%のうち大きい方の値か

ら、現在のJavaプール・サイズの200%までです。時間間隔の値は、Javaプールの現在のサイ ズによって異なります。

共有プール 共有プール 共有プール

共有プール : ディクショナリ・キャッシュの統計 ディクショナリ・キャッシュの統計 ディクショナリ・キャッシュの統計 ディクショナリ・キャッシュの統計

共有プールがライブラリ・キャッシュに対して適切にサイズ設定されている場合、その設定は ディクショナリ・キャッシュ・データに対しても適切であるのが普通です。

データ・ディクショナリ・キャッシュ・ミスは、いくつかの場合に予想されます。インスタン ス起動時は、データ・ディクショナリ・キャッシュにデータは含まれていません。したがって、

発行されたSQL文からキャッシュ・ミスが発生する可能性があります。キャッシュに読み込ま れるデータが増えると、キャッシュ・ミスの可能性は減少します。最終的に、データベースは、

最も頻繁に使用されるディクショナリ・データがキャッシュ内に存在する安定状態に到達しま す。この時点で、キャッシュ・ミスはほとんど発生しません。

V$ROWCACHEビューの各行は、データ・ディクショナリ項目について単一のタイプの統計を収 録します。これらの統計は、直前のインスタンス起動以降のデータ・ディクショナリ・アク ティビティを反映しています。データ・ディクショナリ・キャッシュの使用と有効性を反映す るV$ROWCACHEビューの中の列を表7-2にリストします。

次の問合せによって、アプリケーションの実行中、ある期間にわたってV$ROWCACHEビューの 統計を監視してください。導出された列PCT_SUCC_GETSは、項目固有のヒット率と考えるこ とができます。

column parameter format a21 column pct_succ_gets format 999.9 column updates format 999,999,999 SELECT parameter

, sum(gets) , sum(getmisses)

, 100*sum(gets - getmisses) / sum(gets) pct_succ_gets , sum(modifications) updates FROM V$ROWCACHE

WHERE gets > 0 GROUP BY parameter;

関連項目 関連項目 関連項目

関連項目: 動的パフォーマンス・ビューV$SHARED_POOL_ADVICE、

V$LIBRARY_CACHE_MEMORY、V$JAVA_POOL_ADVICEおよび

V$JAVA_LIBRARY_CACHE_MEMORYの詳細は、『Oracle Databaseリファ レンス』を参照してください。

表 表 表

表 7-2 V$ROWCACHE列列列列 列列

列列 説明説明説明説明

PARAMETER 特定のデータ・ディクショナリ項目を識別します。各行で、この列

の値は接頭辞dc_が付いた項目です。たとえば、ファイル記述の統 計を含む行では、この列の値はdc_filesです。

GETS 対応する項目に関する情報への要求の総数を示します。たとえば、

ファイル記述の統計を含む行では、この列はファイル記述データへ の要求の総数を持ちます。

GETMISSES キャッシュで満たされなかったデータ要求で、I/Oを必要とするも

のの個数を示します。

MODIFICATIONS ディクショナリ・キャッシュ内のデータが更新された回数を示しま

す。

この問合せの出力例を次に示します。

PARAMETER SUM(GETS) SUM(GETMISSES) PCT_SUCC_GETS UPDATES --- --- -- - ---dc_database_links 81 1 98.8 0 dc_free_extents 44876 20301 54.8 40,453 dc_global_oids 42 9 78.6 0 dc_histogram_defs 9419 651 93.1 0 dc_object_ids 29854 239 99.2 52 dc_objects 33600 590 98.2 53 dc_profiles 19001 1 100.0 0 dc_rollback_segments 47244 16 100.0 19 dc_segments 100467 19042 81.0 40,272 dc_sequence_grants 119 16 86.6 0 dc_sequences 26973 16 99.9 26,811 dc_synonyms 6617 168 97.5 0 dc_tablespace_quotas 120 7 94.2 51 dc_tablespaces 581248 10 100.0 0 dc_used_extents 51418 20249 60.6 42,811 dc_user_grants 76082 18 100.0 0 dc_usernames 216860 12 100.0 0 dc_users 376895 22 100.0 0 サンプル問合せが戻したデータを調べると、次のことがわかります。

使用済エクステント、空きエクステントおよびセグメントには、多数のミスと更新があり ます。つまり、インスタンスに大量の動的な領域の拡張があったことを示しています。

取得成功率およびその統計と、実際の取得数との比較に基づくと、共有プールはディク ショナリ・キャッシュ・データを適切に格納できる大きさがあります。

次の計算式を使用して、総合的ディクショナリ・キャッシュ・ヒット率も計算できますが、す べてのキャッシュにわたるデータを合計すると、より細かいデータの粒度は失われます。

SELECT (SUM(GETS - GETMISSES - FIXED)) / SUM(GETS) "ROW CACHE" FROM V$ROWCACHE;

共有プール統計の解釈 共有プール統計の解釈 共有プール統計の解釈 共有プール統計の解釈

共有プール統計は実行可能な調整方法を示します。この項ではそのうちのいくつかについて説 明します。

メモリー割当ての増加 メモリー割当ての増加 メモリー割当ての増加 メモリー割当ての増加

共有プールのメモリー量を増やすと、ライブラリ・キャッシュとディクショナリ・キャッシュ の両方で使用できるメモリー量が増えます。

ライブラリ・キャッシュへの追加のメモリー割当て ライブラリ・キャッシュへの追加のメモリー割当て ライブラリ・キャッシュへの追加のメモリー割当て

ライブラリ・キャッシュへの追加のメモリー割当て 共有SQL領域がそれらのSQL文を解析し た後にキャッシュ内に残るようにするには、V$LIBRARYCACHE.RELOADS値が0(ゼロ)に近 くなるまでライブラリ・キャッシュに利用できるメモリー量を増やします。ライブラリ・

キャッシュに利用できるメモリーを増やすには、SHARED_POOL_SIZE初期化パラメータの値 を増やしてください。このパラメータの最大値はオペレーティング・システムによって異なり ます。この処置によって、実行のためのSQL文とPL/SQLブロックの暗黙的な再解析が減少し ます。

共有SQL領域に利用可能な追加のメモリーを利用するために、セッションに対して許可される カーソル数を増やすこともあります。その場合は、初期化パラメータOPEN_CURSORSの値を 増やします。

データ・ディクショナリ・キャッシュへの追加のメモリーの割当て データ・ディクショナリ・キャッシュへの追加のメモリーの割当て データ・ディクショナリ・キャッシュへの追加のメモリーの割当て

データ・ディクショナリ・キャッシュへの追加のメモリーの割当て GETSとGETMISSES列を 監視することによって、キャッシュ・アクティビティを調べてください。ディクショナリ・

キャッシュが頻繁にアクセスされる場合、GETSの合計に対するGETMISSESの割合は、アプリ ケーションによって異なりますが、10%あるいは15%より低くしてください。

関連したドキュメント