DBMS_CACHEパッケージ
DBMS_CACHEパッケージを使用すると、自律型AIデータベース・インスタンス内の外部表キャッシュの自動キャッシュが容易になります。
- DBMS_CACHEサブプログラムの概要
この表は、DBMS_CACHEパッケージに含まれるサブプログラムの概要を示しています。
DBMS_CACHEサブプログラムの要約
この表は、DBMS_CACHEパッケージに含まれるサブプログラムの概要を示しています。
| サブプログラム | 摘要 |
|---|---|
|
指定されたユーザーのすべての外部表キャッシュをクリアします。 |
|
|
外部表キャッシュ・プロパティを取得します。 |
|
|
指定されたユーザーの外部表キャッシュ・プロパティを取得します。 |
|
|
指定されたユーザーのすべての外部表キャッシュをリフレッシュします。 |
|
|
すべてのデータベース・ユーザーの外部表キャッシュ・プリファレンスを指定します。 |
|
|
指定されたユーザーの外部表キャッシュ・プリファレンスを指定します。 |
- CLEARプロシージャ
DBMS_CACHE.CLEARプロシージャを使用して、指定したユーザーのすべての外部表キャッシュを削除します。 - GET_GLOBAL_PROPERTYプロシージャ
DBMS_CACHE.GET_GLOBAL_PROPERTYプロシージャは、データベース内のすべてのユーザーの外部表キャッシュ・プリファレンスを取得します。このプロシージャはオーバーロードされています。 - SET_GLOBAL_PROPERTYプロシージャ
DBMS_CACHE.SET_GLOBAL_PROPERTYプロシージャを使用して、データベースの自動キャッシュを有効にするユーザーを含め、すべてのデータベース・ユーザーのAUTOキャッシュ・プロパティを設定します。このプロシージャはオーバーロードされています。 - REFRESHプロシージャ
DBMS_CACHE.REFRESHプロシージャを使用して、指定したユーザーのAUTO外部表キャッシュをすべてリフレッシュします。 - GET_USER_PROPERTYプロシージャ
DBMS_CACHE.GET_USER_PROPERTYプロシージャを使用して、ユーザーの自動キャッシュ・プロパティを取得します。 - SET_USER_PROPERTYプロシージャ
DBMS_CACHE.SET_USER_PROPERTYプロシージャを使用して、指定したスキーマのAUTOキャッシュ・プロパティ(スキーマの自動キャッシュを有効にするプロパティを含む)を設定します。このプロシージャはオーバーロードされています。
親トピック: DBMS_CACHEパッケージ
CLEARプロシージャ
DBMS_CACHE.CLEARプロシージャを使用して、指定したユーザーのすべての外部表キャッシュを削除します。
DBMS_CACHE.CLEARプロシージャは、DROPコマンドがデータベース表に対してどのように機能するかと同様に、すべての外部表キャッシュを削除し、記憶域を解放します。
構文
DBMS_CACHE.CLEAR (
owner IN VARCHAR2
);パラメータ
| パラメータ | 摘要 |
|---|---|
|
|
スキーマ名を指定します。 |
例
BEGIN
DBMS_CACHE.CLEAR (
owner => 'SALES');
END;
/使用上のノート
-
キャッシュをクリアするには、
ADMINユーザーとしてログインするか、DBMS_CACHEパッケージに対するEXECUTE権限を持っている必要があります。
親トピック: DBMS_CACHEサブプログラムの要約
GET_GLOBAL_PROPERTYプロシージャ
DBMS_CACHE.GET_GLOBAL_PROPERTYプロシージャは、データベース内のすべてのユーザーの外部表キャッシュ・プリファレンスを取得します。このプロシージャはオーバーロードされています。
構文
DBMS_CACHE.GET_GLOBAL_PROPERTY (
property_name IN VARCHAR2,
property_value_num OUT VARCHAR2);
DBMS_CACHE.GET_GLOBAL_PROPERTY (
property_name IN VARCHAR2,
property_value_str OUT VARCHAR2);
パラメータ
| パラメータ | 摘要 |
|---|---|
|
|
プロパティ名を指定します。 property_nameの有効な値は次のとおりです。
|
|
|
指定されたプロパティ名の |
|
|
指定されたプロパティ名の |
例
SET SERVEROUTPUT ON;
DECLARE
cache_property NUMBER;
BEGIN
DBMS_CACHE.GET_GLOBAL_PROPERTY (
property_name => 'MAX_CACHE_SIZE',
property_value => cache_property
);
DBMS_OUTPUT.PUT_LINE('MAX_CACHE_SIZE = ' || cache_property);
END;
/使用上のノート
-
このプロシージャを実行するには、
ADMINユーザーとしてログインするか、DBMS_CACHEパッケージに対するEXECUTE権限を持っている必要があります。
親トピック: DBMS_CACHEサブプログラムの要約
SET_GLOBAL_PROPERTYプロシージャ
DBMS_CACHE.SET_GLOBAL_PROPERTYプロシージャを使用して、データベースの自動キャッシュを有効にするユーザーを含め、すべてのデータベース・ユーザーのAUTOキャッシュ・プロパティを設定します。このプロシージャはオーバーロードされています。
デフォルトでは、外部表の自動キャッシュは無効になっています。これを有効にするには、DBMS_CACHE.SET_GLOBAL_PROPERTYプロシージャのMAX_CACHE_SIZEまたはMAX_CACHE_SIZEプロパティを使用して、キャッシュ・サイズをゼロ以外の値に設定します。これにより、データベースの自動キャッシュがグローバルに有効になります。
構文
DBMS_CACHE.SET_GLOBAL_PROPERTY (
property_name IN VARCHAR2,
property_value_num IN NUMBER);
DBMS_CACHE.SET_GLOBAL_PROPERTY (
property_name IN VARCHAR2,
property_value_str IN VARCHAR2);
パラメータ
| パラメータ | 摘要 |
|---|---|
|
|
プロパティ名を指定します。 property_nameの有効な値は次のとおりです。
|
|
|
指定されたプロパティ名の |
|
|
指定されたプロパティ名の |
例
BEGIN
DBMS_CACHE.SET_GLOBAL_PROPERTY (
property_name => 'MAX_CACHE_SIZE',
property_value_num => 50);
END;
/BEGIN
DBMS_CACHE.SET_GLOBAL_PROPERTY (
property_name => 'AUTO_REFRESH_MODE',
property_value_str => 'NEW');
END;
/BEGIN
DBMS_CACHE.SET_GLOBAL_PROPERTY (
property_name => 'MAX_REFRESH_WINDOW',
property_value_num => 20);
END;
/使用上のノート
-
このプロシージャを実行するには、
ADMINユーザーとしてログインするか、DBMS_CACHEパッケージに対するEXECUTE権限を持っている必要があります。 -
MAX_REFRESH_WINDOWプロパティは、外部表キャッシュのリフレッシュに許可される最大時間を秒単位で指定します。リフレッシュが指定の制限を超えた場合、キャッシュ・リフレッシュは正常に終了し、残りの適格キャッシュは次のリフレッシュ・サイクルでキューに入れられます。 -
DBMS_CACHE.REFRESHプロシージャを使用してキャッシュをリフレッシュする場合、プロシージャ・パラメータはAUTO_REFRESH_MODEプロパティより優先されます。詳細は、REFRESHプロシージャを参照してください。
親トピック: DBMS_CACHEサブプログラムの要約
REFRESHプロシージャ
DBMS_CACHE.REFRESHプロシージャを使用して、指定したユーザーのAUTO外部表キャッシュをすべてリフレッシュします。
構文
DBMS_CACHE.REFRESH (
owner IN VARCHAR2,
refresh_type IN VARCHAR2 DEFAULT ALL
);パラメータ
| パラメータ | 摘要 |
|---|---|
|
|
スキーマ名を指定します。 |
|
|
リフレッシュ・オプションを指定します。 有効な
refresh_type値は次のとおりです。
このパラメータはオプションで、デフォルト値は |
例
BEGIN
DBMS_CACHE.REFRESH (
owner => 'SALES',
refresh_type => 'CURRENT');
END;
/使用上のノート
-
このプロシージャを実行するには、
ADMINユーザーとしてログインするか、DBMS_CACHEパッケージに対するEXECUTE権限を持っている必要があります。 -
refresh_typeパラメータの値を指定しない場合、Oracleはauto_refresh_mode値に基づいてリフレッシュを実行します。auto_refresh_modeのデフォルト値はALLです。 -
MAX_REFRESH_WINDOWプロパティが設定されている場合、Oracleは指定したウィンドウでリフレッシュを実行しようとします。リフレッシュが指定の制限を超えた場合、キャッシュ・リフレッシュは正常に終了し、残りの適格キャッシュは次のリフレッシュ・サイクルでキューに入れられます。 -
データベース内のすべてのAUTOキャッシュは、最低使用頻度(LRU)に類似した削除アルゴリズムを使用して管理されます。領域が不足すると、最近アクセスされたキャッシュは、リフレッシュ・プロセス中に自動的に削除され、記憶域が解放されます。
親トピック: DBMS_CACHEサブプログラムの要約
GET_USER_PROPERTYプロシージャ
DBMS_CACHE.GET_USER_PROPERTYプロシージャを使用して、ユーザーの自動キャッシュ・プロパティを取得します。
構文
DBMS_CACHE.GET_USER_PROPERTY (
property_name IN VARCHAR2,
owner IN VARCHAR2 DEFAULT NULL,
property_value_str OUT VARCHAR2);
DBMS_CACHE.GET_USER_PROPERTY (
property_name IN VARCHAR2,
owner IN VARCHAR2 DEFAULT NULL,
property_value_num OUT NUMBER);パラメータ
| パラメータ | 摘要 |
|---|---|
|
|
プロパティ名を指定します。 property_nameの有効な値は次のとおりです。
|
|
|
スキーマ名を指定します。このパラメータはオプションで、現在のスキーマにデフォルト設定されます。 |
|
|
指定されたプロパティ名の |
|
|
指定されたプロパティ名の |
例
SET SERVEROUTPUT ON;
DECLARE
cache_property NUMBER;
BEGIN
DBMS_CACHE.GET_USER_PROPERTY (
property_name => 'MAX_CACHE_SIZE',
owner => NULL,
property_value => cache_property
);
DBMS_OUTPUT.PUT_LINE('MAX_CACHE_SIZE = ' || cache_property);
END;
/使用上のノート
-
このプロシージャを実行するには、
ADMINユーザーとしてログインするか、DBMS_CACHEパッケージに対するEXECUTE権限を持っている必要があります。
親トピック: DBMS_CACHEサブプログラムの要約
SET_USER_PROPERTYプロシージャ
DBMS_CACHE.SET_USER_PROPERTYプロシージャを使用して、指定したスキーマのAUTOキャッシュ・プロパティ(スキーマの自動キャッシュを有効にするプロパティを含む)を設定します。このプロシージャはオーバーロードされています。
構文
DBMS_CACHE.SET_USER_PROPERTY (
property_name IN VARCHAR2,
property_value_num IN NUMBER,
owner IN VARCHAR2 DEFAULT NULL);
DBMS_CACHE.SET_USER_PROPERTY (
property_name IN VARCHAR2,
property_value_str IN NUMBER,
owner IN VARCHAR2 DEFAULT NULL
);
パラメータ
| パラメータ | 摘要 |
|---|---|
|
|
プロパティ名を指定します。 property_nameの有効な値は次のとおりです。
|
|
|
指定されたプロパティ名の |
|
|
指定されたプロパティ名の |
|
|
スキーマ名を指定します。このパラメータはオプションで、現在のスキーマにデフォルト設定されます。 |
例
BEGIN
DBMS_CACHE.SET_USER_PROPERTY (
property_name => 'MAX_CACHE_SIZE',
property_value_num => 50,
owner => 'SALES');
END;
/使用上のノート
-
このプロシージャを実行するには、
ADMINユーザーとしてログインするか、DBMS_CACHEパッケージに対するEXECUTE権限を持っている必要があります。
親トピック: DBMS_CACHEサブプログラムの要約