GATHER_SCHEMA_STATS プロシージャは、指定されたユーザーのすべてのオブジェクトに関する統計情報を収集します。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
構文
DBMS_STATS.GATHER_SCHEMA_STATS (
ownname VARCHAR2,
estimate_percent NUMBER DEFAULT AUTO_SAMPLE_SIZE,
block_sample BOOLEAN DEFAULT FALSE,
method_opt VARCHAR2 DEFAULT DEFAULT_METHOD_OPT,
degree NUMBER DEFAULT NULL,
granularity VARCHAR2 DEFAULT DEFAULT_GRANULARITY,
cascade BOOLEAN DEFAULT NULL,
no_invalidate BOOLEAN DEFAULT FALSE,
stattype VARCHAR2 DEFAULT 'DATA',
force BOOLEAN DEFAULT FALSE);
パラメータ説明
パラメータ |
説明 |
|---|---|
| ownname | ユーザー名。ユーザー名を NULL に設定した場合、現在ログインしているユーザー名がデフォルトで使用されます。 |
| estimate_percent | 予測行の割合。有効範囲は [0.000001,100]。 |
| block_sample | データベースがランダムブロック抽出 (TRUE) を使用するか、ランダム行抽出 (FALSE) を使用するかを指定します。デフォルト値は FALSE です。ランダムブロック抽出の方が効率的ですが、データがディスク上にランダムに分散していない場合、サンプル値に相関が生じる可能性があります。 |
| method_opt | グローバル、スキーマ、データベース、またはディクショナリレベルで設定オプションを設定する場合、FOR ALL 構文のみを使用できます。それ以外の場合、method_opt は以下のオプションのいずれか、またはその組み合わせのみとなります:
FOR ALL COLUMNS SIZE AUTO です。 |
| degree | パラレル度。デフォルト値は NULL です。NULL は CREATE TABLE または ALTER TABLE ステートメントの DEGREE 句で指定されたテーブルのデフォルト値を使用することを意味します。DEGREE=>NULL、DEGREE=>n を使用する場合、オブジェクトのサイズがパラレル実行を保証しない場合、DBMS_STATS は直列実行を使用する可能性があります。 |
| granularity | 収集する統計情報の粒度(テーブルがパーティション化されている場合にのみ適用されます)。
|
| cascade | テーブルと列の統計情報を収集するだけでなく、インデックスに関する統計情報も収集します。これは、スキーマ内の各インデックスに対して GATHER_INDEX_STATS プロシージャを実行したことに相当します。 |
| no_invalidate | 統計情報を収集する際にPlan Cacheをフラッシュするかどうかを指定します。TRUE に設定すると、統計情報を収集する際にPlan Cacheをフラッシュしません。 |
| stattype | 現在の統計情報が保存されている場所。 |
| force | ロックの状態を無視して強制的に収集するかどうかを指定します。デフォルトはFALSEです。TRUEに設定すると、統計情報がロックされていても収集されます。 |
異常時
エラーコード |
説明 |
|---|---|
| OBE-20000 | ユーザーが存在しないか、権限が不足しています。 |
| OBE-20001 | 入力値が誤っています。 |
使用方法
このプロシージャを呼び出すには、テーブルの所有者である必要があります。SYS が所有するオブジェクトを使用する場合は、テーブルの所有者または SYSDBA 権限が必要です。
値が TRUE および FALSE のパラメータについては、BEGIN ... END ブロック内でこのプロシージャを実行する必要がある点に注意してください。
例
hr テナント配下のすべてのテーブルの統計情報を収集します。
obclient> BEGIN
DBMS_STATS.GATHER_SCHEMA_STATS ('hr', degree=>64,no_invalidate=>TRUE);
END;
Query OK, 0 rows affected
関連ドキュメント
指定されたユーザーのすべてのオブジェクトの統計情報収集に関する詳細は、手動統計情報収集を参照してください。