機械翻訳について

14 DBMS_ACTIVITY

DBMS_ACTIVITYには、認可されたユーザーがOATSによって取得されたアクティビティ情報を制御できるファンクションおよびプロシージャが含まれています。

このパッケージの所有者はSYSであるため、SYS以外のユーザーにはEXECUTEパッケージ権限が必要です。 DBAロールを持つユーザーには、このパッケージのEXECUTE権限が付与されます。

この章のトピックは、次のとおりです:

14.1 DBMS_ACTIVITYの使用方法

オブジェクト・アクティビティ・トラッキング・システム(OATS)は、様々なデータベース・オブジェクトに関連付けられた様々なタイプのアクティビティに関する情報を提供するRDBMSベースの汎用トラッキング・サービスです。 アクティビティは、表のスキャンやロードなど、ユーザーまたはシステムが開始するアクションを表します。 ほとんどのアクティビティは、15分間の表のスキャン数など、頻度(固定時間間隔における件数)という形で追跡されます。

アクティビティを追跡するデータベース・オブジェクトには、表およびマテリアライズド・ビューが含まれます。 アクティビティのタイプとしては、行の挿入、削除および更新、表のスキャン、ロードおよび切捨て、パーティション・メンテナンス操作(作成、削除、移動、分割、マージおよび交換)、マテリアライズド・ビューのリライトおよびリフレッシュなどがあります。

アクティビティのもう1つ重要な分類は、MV、索引、ゾーン・マップなどの補助構造の使用または不使用に関連するものです。

追跡手法は、アクティビティのタイプに応じて、高精度、近似、確率的のいずれかにできます。 ほとんどのアクティビティは、効率上の理由から、近似で追跡されます。

追跡手法には、アクティビティのタイプと様々なクライアントによるその使用状況によって向き不向きがあります。 たとえば、索引およびマテリアライズド・ビューの使用状況を追跡する場合にはカウンタが便利です。 カウンタは、経時的にオブジェクトの使用パターンを取得できるように一定の期間保持されます。 同様に、表の列の更新アクティビティを追跡するには、更新カウンタを個別に保持します。 別の追跡手法としてビットベクトルにビットを設定するというものがあり、これは、ある期間内に特定のアクティビティが発生したことを登録し、アクティビティの発生回数は示さない場合に適しています。

高精度追跡: アクティビティは、100%の精度で考慮されます。 マルチプロセッサ環境で高精度追跡を行うには、なんらかの形式のアトミック更新またはラッチが必要です。 OATSは、通常、クライアントがその種類の精度を必要としないかぎり、高精度追跡を回避します。

近似追跡: アクティビティは、ほとんどの場合に考慮されますが、稀に例外があります。 近似追跡の例として、アクティビティ・カウンタの内容を保証しない更新があります。 カウンタの変更時にロックまたはラッチが実行されず、アトミック操作が使用されないため、内容を保証しない更新は非常に効率的です。 ただし、内容を保証しない更新の結果として、更新が失われ、カウント数が実際よりも少なくなる可能性があります。 更新の損失が稀である場合には、内容を保証しない更新は近似追跡に非常に効率的な手法です。

確率的追跡: アクティビティは特定の確率でサンプリングされ、サンプルの一部になる時期が考慮されます。 確率的追跡では、アクティビティ・データの精度は低くなりますが、追跡アクションの発生頻度が抑えられます。

発生追跡: 特定のアクティビティがある期間内に発生したことを記録します。 具体的には、特定のオブジェクト・アクティビティの発生回数を示すのではなく、それが特定の期間に少なくとも1回発生したことを示す情報を提供します。 ビットベクトルの使用は、発生追跡でよく使用される手法です。 発生追跡は、ビットベクトルでのビットの設定方法に応じて、高精度(衝突なし)または近似(衝突の可能性あり)のいずれかにできます。

トランザクションおよびロールバックによるカウンタの影響: 高精度追跡のカウンタ以外のタイプのカウンタは、いずれもトランザクション型ではなく、ロールバックの影響を受けません。 つまり、トランザクションが失敗しても、近似カウンタはそのトランザクションからのアクションを記録できます。 また、データベースがセーブポイントにロールバックされたときに、近似カウンタは以前の状態に戻されません。

14.2 DBMS_ACTIVITYサブプログラムの要約

DBMS_ACTIVITYでは、CONFIGURECREATE_SNAPSHOPDELETE_SNAPSHOTSの各プロシージャを使用します。

表14-1 DBMS_ACTIVITYパッケージのサブプログラム

サブプログラム 説明

CONFIGURE Procedure

認可されたユーザーは、OATSの構成パラメータをパラメータ/値という形式で設定できます。

CREATE_SNAPSHOT Procedure

認可されたユーザーは、メモリーに保持されているアクティビティ情報をディスクにフラッシュすることで、ローカル・インスタンスまたはすべてのデータベース・インスタンスにアクティビティ・スナップショットを手動で作成できます

DELETE_SNAPSHOTS Procedure

認可されたユーザーは、BEFORE_SNAP_IDという入力スナップショットIDに基づいて古いスナップショットをすべて手動で削除できます。

DELETE_SNAPSHOTS

認可されたユーザーは、BEFORE_TIMEという入力タイムスタンプ値に基づいて古いスナップショットをすべて手動で削除できます。

14.2.1 CONFIGUREプロシージャ

このプロシージャを使用すると、認可されたユーザーはOATSの構成パラメータをパラメータ/値という形式で設定できます。

このファンクションは、異なる構成パラメータを設定するたびに何度もコールすることも、同じパラメータを異なる値でコールすることもできます。 パラメータ設定は、示されたデータベースまたはローカル・データベースに適用されます。

構文

DBMS_ACTIVITY.CONFIGURE (
   PARAMETER_NAME       IN VARCHAR2
   PARAMETER_VALUE      IN NUMBER,
   CON_DBNAME           IN VARCHAR2 := NULL
);

パラメータ

表14-2 CONFIGUREプロシージャのパラメータ

パラメータ 説明

PARAMETER_NAME

設定する構成パラメータの名前。 使用可能なパラメータ:

  • ACTIVITY_INTERVAL_MINUTES: アクティビティ情報をフラッシュおよびリセットする前に保持しておく間隔(分)。 デフォルトは15です。 その他の値: 30、60、120、180、240、360、480、720、1440

  • ACTIVITY_RETENTION_DAYS: アクティビティ情報をパージするまでに保持しておく日数。 デフォルトは400です。 8から2000まで。

  • ACTIVITY_SPACE_PERCENT: アクティビティ情報を格納するためのSYSAUX領域のソフト制限(%)。 デフォルトは5です。 1から25まで。

PARAMETER_VALUE

使用する構成パラメータの値。

CON_DBNAME

統合データベース(CDB)内のコンテナの名前。 ルートまたはプラガブル・データベースのいずれかです。 省略すると、デフォルトはローカル・データベースになります。

ノート:

現在のCDB名またはPDB名は、サポートされている、null以外の値のみです。

使用上のノート

ユーザーは、SYSであるか、DBAロールを持っているか、またはEXECUTEパッケージ権限を付与されている必要があります。

14.2.2 CREATE_SNAPSHOTプロシージャ

このプロシージャを使用すると、認可されたユーザーは、メモリーに保持されているアクティビティ情報をディスクにフラッシュすることで、ローカル・インスタンスまたはすべてのデータベース・インスタンスにアクティビティ・スナップショットを手動で作成できます。

構文

DBMS_ACTIVITY.CREATE_SNAPSHOT(
   ALL_INSTANCES       IN BOOLEAN := TRUE,
   CON_DBNAME          IN VARCHAR2 := NULL
);

パラメータ

表14-3 CREATE_SNAPSHOTプロシージャのパラメータ

パラメータ 説明

ALL_INSTANCES

アクティビティ・スナップショットをローカル・インスタンスに対してのみ作成する場合は、FALSEを指定します。 デフォルトでは、すべてのデータベース・インスタンスにスナップショットが作成されます。

CON_DBNAME

統合データベース(CDB)内のコンテナの名前。 ルートまたはプラガブル・データベースのいずれかです。 省略すると、デフォルトはローカル・データベースになります。

ノート:

現在のCDB名またはPDB名は、サポートされている、null以外の値のみです。

使用上のノート

作成されたスナップショットのSNAP_ID

ユーザーは、SYSであるか、DBAロールを持っているか、またはEXECUTEパッケージ権限を付与されている必要があります。

14.2.3 DELETE_SNAPSHOTSプロシージャ

このプロシージャを使用すると、認可されたユーザーはBEFORE_SNAP_IDという入力スナップショットIDに基づいて古いスナップショットをすべて手動で削除できます。

構文

DBMS_ACTIVITY.DELETE_SNAPSHOTS (
   BEFORE_SNAP_ID      IN NUMBER,
   CON_DBNAME          IN VARCHAR2 := NULL
);

パラメータ

表14-4 DELETE_SNAPSHOTSプロシージャのパラメータ

パラメータ 説明

BEFORE_SNAP_ID

SNAP_ID値がこの引数値より小さいスナップショットはすべて、ディスク記憶域(SYSAUX)から削除されます。

CON_DBNAME

統合データベース(CDB)内のコンテナの名前。 ルートまたはプラガブル・データベースのいずれかです。 省略すると、デフォルトはローカル・データベースになります。

ノート:

現在のCDB名またはPDB名は、サポートされている、null以外の値のみです。

使用上のノート

1つ以上のスナップショットが削除された場合はTRUE、それ以外の場合はFALSEを戻します。

ユーザーは、SYSであるか、DBAロールを持っているか、またはEXECUTEパッケージ権限を付与されている必要があります。

14.2.4 DELETE_SNAPSHOTSプロシージャ

このプロシージャを使用すると、認可されたユーザーはBEFORE_TIMEという入力タイムスタンプ値に基づいて古いスナップショットをすべて手動で削除できます。

構文

DBMS_ACTIVITY.DELETE_SNAPSHOTS (
   BEFORE_TIME         IN TIMESTAMP,
   CON_DBNAME          IN VARCHAR2 := NULL
);

パラメータ

表14-5 DELETE_SNAPSHOTSプロシージャのパラメータ

パラメータ 説明

BEFORE_TIME

この引数値より小さい時間に関連付けられたスナップショットはすべて、ディスク記憶域(SYSAUX)から削除されます。

CON_DBNAME

統合データベース(CDB)内のコンテナの名前。 ルートまたはプラガブル・データベースのいずれかです。 省略すると、デフォルトはローカル・データベースになります。

ノート:

現在のCDB名またはPDB名は、サポートされている、null以外の値のみです。

使用上のノート

1つ以上のスナップショットが削除された場合はTRUE、それ以外の場合はFALSEを戻します。

ユーザーは、SYSであるか、DBAロールを持っているか、またはEXECUTEパッケージ権限を付与されている必要があります。