ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
10g リリース2(10.2)
B19245-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

103 DBMS_STATS

DBMS_STATSパッケージを使用すると、データベース・オブジェクト用に収集したオプティマイザの統計情報を表示および変更できます。


関連項目:

『Oracle Databaseパフォーマンス・チューニング・ガイド』

この章では、次の項目について説明します。


DBMS_STATSの使用方法

この項では、DBMS_STATSパッケージの使用に関連する項目について説明します。


概要

Oracle RDBMSでは、パフォーマンス向上のために使用できる様々な統計情報を収集できます。このパッケージは、オプティマイザ統計情報にのみ関連しています。Oracleでは、これらの統計情報の自動収集がデフォルトに設定されているため、このパッケージは特別な場合にのみ使用されます。

表示または変更対象の統計情報は、この目的のためにユーザーのスキーマに作成したディクショナリや表に常駐させることができます。また、このパッケージを使用して、表およびドメイン索引に関するユーザー定義の統計情報を収集および管理できます。

たとえば、関連性が定義されている列に対してDELETE_COLUMN_STATSプロシージャが起動されると、標準的な統計情報に加え、その列にあるユーザー定義の統計情報も削除されます。

コストベースのオプティマイザに影響を与える統計情報は、ディクショナリに格納されている統計情報のみです。また、DBMS_STATSを使用して、並列的に統計情報を収集できます。


関連項目:

オプティマイザ統計情報の管理の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。


タイプ

最小値と最大値およびヒストグラム終点のタイプは、次のとおりです。

TYPE numarray  IS VARRAY(256) OF NUMBER;
TYPE datearray IS VARRAY(256) OF DATE;
TYPE chararray IS VARRAY(256) OF VARCHAR2(4000);
TYPE rawarray  IS VARRAY(256) OF RAW(2000);
TYPE fltarray IS VARRAY(256) OF BINARY_FLOAT;
TYPE dblarray IS VARRAY(256) OF BINARY_DOUBLE;

TYPE StatRec IS RECORD (
  epc    NUMBER,
  minval RAW(2000),
  maxval RAW(2000),
  bkvals NUMARRAY,
  novals NUMARRAY);

失効した表のリストのタイプは、次のとおりです。

TYPE ObjectElem IS RECORD (
  ownname     VARCHAR2(30),     -- owner
  objtype     VARCHAR2(6),      -- 'TABLE' or 'INDEX'
  objname     VARCHAR2(30),     -- table/index
  partname    VARCHAR2(30),     -- partition
  subpartname VARCHAR2(30),     -- subpartition
  confidence  NUMBER);          -- not used
type ObjectTab is TABLE of ObjectElem;

定数

自動サンプル・サイズのアルゴリズムを使用することを示すために、次の定数が使用されます。

AUTO_SAMPLE_SIZE CONSTANT NUMBER;

システムにおける初期化パラメータに基づいてデフォルトの並列度を判別するために、次の定数が使用されます。

DEFAULT_DEGREE CONSTANT NUMBER;

Oracleでは次の定数を使用すると、オブジェクトのサイズ、CPU数および初期化パラメータを基に並列度を選択できます。

AUTO_DEGREE CONSTANT NUMBER;

次の定数を使用すると、索引の統計情報を収集するかどうかを選択できます。

AUTO_CASCADE CONSTANT BOOLEAN;

次の定数を使用すると、依存カーソルを無効化する時機を決定できます。

AUTO_INVALIDATE CONSTANT BOOLEAN

使用上の注意

DBMS_STATSサブプログラムでは、次に示す一般的な操作を実行します。

ほとんどのDBMS_STATSプロシージャには、statownstattabおよびstatidの3つのパラメータが含まれています。これらのパラメータによって、ユーザーはオプティマイザに影響を与えない自分自身の表(ディクショナリ外)に統計情報を格納できます。したがって、ユーザーは統計情報のセットをメンテナンスおよび試用することができます。

stattabパラメータで、統計情報を保持する表の名前を指定します。この表は、(statownパラメータが指定されていないかぎり)統計情報が収集されるオブジェクトと同じスキーマ内に常駐しているとみなされます。異なるstattab識別子で複数の表を作成し、統計情報セットを別々に保持できます。

さらに、statidパラメータを使用して1つのstattab内で複数の統計情報セットをメンテナンスできるため、ユーザーのスキーマが混乱するのを回避できます。

SETおよびGETプロシージャについて、stattabが準備されていない場合(つまり、NULLの場合)、操作はディクショナリにある統計情報に対して直接行われます。したがって、ディクショナリを直接変更する場合は、統計表の作成は不要です。ただし、stattabNULLでない場合、SETまたはGET操作は、指定したユーザー統計表に対して行われ、ディクショナリに対しては行われません。

SET_PARAMプロシージャを使用して、DBMS_STATSプロシージャのいくつかのパラメータのデフォルト値を変更できます。

このパッケージのほとんどのプロシージャは、現行のトランザクションをコミットし、操作を実行してから再度コミットします。

ほとんどのプロシージャには、統計情報のすべてのロックを無効にできるforceパラメータがあります。ディクショナリの統計情報が変更されると、古いバージョンの統計情報が将来のリストアに備えて自動的に保存されます。

オプティマイザ統計情報の収集

次のサブプログラムを使用して、特定のクラスのオプティマイザ統計情報を収集し、ANALYZEコマンドの潜在的なパフォーマンスを向上させます。


GATHER_DATABASE_STATSプロシージャ
GATHER_DICTIONARY_STATSプロシージャ
GATHER_FIXED_OBJECTS_STATSプロシージャ
GATHER_INDEX_STATSプロシージャ
GATHER_SCHEMA_STATSプロシージャ
GATHER_SYSTEM_STATSプロシージャ
GATHER_TABLE_STATSプロシージャ

GATHER_*プロシージャは、列およびドメイン索引に関するユーザー定義の統計情報も収集します。

statownstattabおよびstatidの各パラメータは、パッケージに対して、新規の統計情報を収集する前に、指定した表内の現行の統計情報をバックアップするように指示します。

関連オブジェクトに十分な統計情報がある場合、導出オブジェクトの統計情報を生成するために、Oracleは次のプロシージャも提供します。

GENERATE_STATSプロシージャ

統計情報の設定または取得

次のサブプログラムを使用して、個別の列、索引および表に関連する統計情報を格納および取り出します。


PREPARE_COLUMN_VALUESプロシージャ
PREPARE_COLUMN_VALUES_NVARCHAR2プロシージャ
PREPARE_COLUMN_VALUES_ROWIDプロシージャ
SET_COLUMN_STATSプロシージャ
SET_INDEX_STATSプロシージャ
SET_SYSTEM_STATSプロシージャ
SET_TABLE_STATSプロシージャ
GET_COLUMN_STATSプロシージャ
GET_INDEX_STATSプロシージャ
GET_SYSTEM_STATSプロシージャ
GET_TABLE_STATSプロシージャ

ユーザー定義の統計情報を設定する特別バージョンのSET_*_STATSプロシージャでは、次の情報(提供された場合)がディレクトリまたは外部統計表に格納されます。

ユーザー定義の統計情報と対応する統計タイプは、USTATS$ディクショナリ表に挿入されます。ユーザー定義の統計情報は、統計タイプ名の指定なしに指定できます。

特別バージョンのGET_*_STATSプロシージャは、ユーザー定義の統計情報および統計タイプの所有者と名前を、指定したスキーマ・オブジェクトに対応するOUT引数として戻します。ユーザー定義の統計情報が収集されていない場合は、NULL値が戻ります。

統計情報の削除

DELETE_*プロシージャは、ユーザー定義の統計情報と、指定したスキーマ・オブジェクトに関する標準的な統計情報の両方を削除します。


DELETE_COLUMN_STATSプロシージャ
DELETE_DATABASE_STATSプロシージャ
DELETE_DICTIONARY_STATSプロシージャ
DELETE_FIXED_OBJECTS_STATSプロシージャ
DELETE_INDEX_STATSプロシージャ
DELETE_SCHEMA_STATSプロシージャ
DELETE_SYSTEM_STATSプロシージャ
DELETE_TABLE_STATSプロシージャ

統計情報の転送

次のプロシージャを使用して、ユーザー統計表を作成および削除します。


CREATE_STAT_TABLEプロシージャ
DROP_STAT_TABLEプロシージャ

次のプロシージャを使用して、統計情報を転送します。


EXPORT_COLUMN_STATSプロシージャ
EXPORT_DATABASE_STATSプロシージャ
EXPORT_DICTIONARY_STATSプロシージャ
EXPORT_FIXED_OBJECTS_STATSプロシージャ
EXPORT_INDEX_STATSプロシージャ
EXPORT_SCHEMA_STATSプロシージャ
EXPORT_SYSTEM_STATSプロシージャ
EXPORT_TABLE_STATSプロシージャ
IMPORT_COLUMN_STATSプロシージャ
IMPORT_DATABASE_STATSプロシージャ
IMPORT_DICTIONARY_STATSプロシージャ
IMPORT_FIXED_OBJECTS_STATSプロシージャ
IMPORT_INDEX_STATSプロシージャ
IMPORT_SCHEMA_STATSプロシージャ
IMPORT_SYSTEM_STATSプロシージャ
IMPORT_TABLE_STATSプロシージャ

統計情報のロックまたはロック解除

オブジェクトの統計情報をロックおよびロック解除するには、次のプロシージャを使用します。


LOCK_SCHEMA_STATSプロシージャ
LOCK_TABLE_STATSプロシージャ
UNLOCK_SCHEMA_STATSプロシージャ
UNLOCK_TABLE_STATSプロシージャ

LOCK_*プロシージャは、統計情報の現在のセットをアクセス制限するか、統計情報を空(未収集)のままにします。表の統計情報がロックされている場合、表統計情報、列統計情報、ヒストグラムおよび統計情報など、すべての依存索引に関する情報も含めて、表に依存するすべての統計情報はロックされているとみなされます。

統計履歴のリストアおよびパージ

指定したタイムスタンプの統計情報をリストアするには、次のプロシージャを使用します。これは、新しく収集された統計情報によって準最適な実行計画がいくつか実現される場合や、管理者の要望により統計情報を以前のセットに戻す必要がある場合に有効です。


RESET_PARAM_DEFAULTSプロシージャ
RESTORE_DICTIONARY_STATSプロシージャ
RESTORE_FIXED_OBJECTS_STATSプロシージャ
RESTORE_SCHEMA_STATSプロシージャ
RESTORE_SYSTEM_STATSプロシージャ
RESTORE_TABLE_STATSプロシージャ

ディクショナリの統計情報が変更されると、古いバージョンの統計情報が将来のリストアに備えて自動的に保存されます。古い統計情報は、統計履歴のリテンション設定とシステムで実行された最新の統計情報収集の時間に基づいて、一定の周期で自動的にパージされます。ALTER_STATS_HISTORY_RETENTIONプロシージャを使用して、リテンションを設定できます。

この他、DBMS_STATSプロシージャで統計情報のリストアに関連するものには、次のものがあります。

RESTORE_*操作は、ユーザー定義の統計情報ではサポートされていません。

ユーザー定義の統計情報

DBMS_STATSパッケージは、ユーザー定義の統計情報に関する操作をサポートしています。ドメイン索引または列が(associateを使用して)統計タイプに関連付けられている場合は、索引または列に関する操作によって、ユーザー定義の統計情報が操作されます。たとえば、GET_INDEX_STATSプロシージャを使用して(統計タイプに関連付けられている)ドメイン索引の統計情報を収集すると、関連付けられている統計タイプに対応するユーザー定義の統計情報収集メソッドが起動されます。同様に、削除、転送、インポートおよびエクスポートの各操作によって、ユーザー定義の統計情報が操作されます。

ユーザー定義の統計情報に対するSET_*およびGET_*操作も、列および索引に対する特別バージョンのSETおよびGETインタフェースを使用してサポートされます。

EXPORT_*IMPORT_*およびRESTORE_*操作は、ユーザー定義の統計情報ではサポートされていません。


推奨されないサブプログラム

次のサブプログラムは、リリース10g では廃止されました。

以前のリリースでは、これらのサブプログラムを使用して動作を監視するDMLを変更できました。現在、こうした操作はOracleで自動的に行われるため、これらのサブプログラムを実行できません。


元の統計情報の保存と新規統計情報の収集

employees表から最後に統計情報が収集された後、数多くの変更が加えられたと想定します。コストベースのオプティマイザが最適プランを選択するために、統計情報を再度収集する必要があります。しかし、ユーザーは、現行のプランが許容されると、新規の統計情報によってオプティマイザが誤ったプランを選択することを懸念しています。ユーザーは、次のように指定できます。

BEGIN
   DBMS_STATS.CREATE_STAT_TABLE ('hr', 'savestats');
   DBMS_STATS.GATHER_TABLE_STATS ('hr', 'employees', stattab => 'savestats');
END;

この操作は、新規の統計情報をemployees表に収集しますが、最初に、元の統計情報をユーザー統計表hr.savestatsに保存します。

ユーザーが、新規統計情報によってオプティマイザが誤ったプランを生成すると考えている場合は、元の統計情報を次のようにリストアできます。

BEGIN
   DBMS_STATS.DELETE_TABLE_STATS ('hr', 'employees');
   DBMS_STATS.IMPORT_TABLE_STATS ('hr', 'employees', stattab => 'savestats');
END;

日中のシステム統計情報の収集

昼間OLTPトランザクションを処理するデータベース・アプリケーションを実行し、夜間にレポートを実行すると想定します。

昼間のシステムの統計情報を収集するには、720分間情報を収集します。収集した統計情報をMYSTATS表に格納します。

BEGIN
   DBMS_STATS.GATHER_SYSTEM_STATS (
      interval => 720,
      stattab  => 'mystats',
      statid   => 'OLTP');
END;

夜間のシステムの統計情報を収集するには、720分間情報を収集します。収集した統計情報をMYSTATS表に格納します。

BEGIN
   DBMS_STATS.GATHER_SYSTEM_STATS (
      interval => 720,
      stattab  => 'mystats',
      statid   => 'OLAP');
END;

収集した統計情報を使用して、ディクショナリを更新します。

VARIABLE   jobno   number;
BEGIN
   DBMS_JOB.SUBMIT (:jobno, 'DBMS_STATS.IMPORT_SYSTEM_STATS
   (''mystats'',''OLTP'');'
   sysdate, 'sysdate + 1');
   COMMIT;
END;

BEGIN
   DBMS_JOB.SUBMIT (:jobno, 'DBMS_STATS.IMPORT_SYSTEM_STATS
   (''mystats'',''OLAP'');'
   sysdate + 0.5, 'sysdate + 1');
   COMMIT;
END;

DBMS_STATSサブプログラムの要約

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

サブプログラム 説明

ALTER_DATABASE_TAB_MONITORINGプロシージャ


データベースにおけるすべての表の機能を監視するDMLを使用可能または使用禁止にします。ただし、スナップショット・ログおよび表では監視がサポートされていないため対象外です(「推奨されないサブプログラム」を参照)。

ALTER_SCHEMA_TAB_MONITORINGプロシージャ


スキーマにおけるすべての表の機能を監視するDMLを使用可能または使用禁止にします。ただし、スナップショット・ログおよび表では監視がサポートされていないため対象外です(「推奨されないサブプログラム」を参照)。

ALTER_STATS_HISTORY_RETENTIONプロシージャ


統計履歴のリテンション値を変更します。

CONVERT_RAW_VALUEプロシージャ


最大値または最小値の内部表記を、データ型固有の値に変換します。

CONVERT_RAW_VALUE_NVARCHARプロシージャ


最大値または最小値の内部表記を、データ型固有の値に変換します。

CONVERT_RAW_VALUE_ROWIDプロシージャ


最大値または最小値の内部表記を、データ型固有の値に変換します。

CREATE_STAT_TABLEプロシージャ


統計情報を保持できるownnameのスキーマにstattabの名前で表を作成します。

DELETE_COLUMN_STATSプロシージャ


列に関連する統計情報を削除します。

DELETE_DATABASE_STATSプロシージャ


データベース全体に関する統計情報を削除します。

DELETE_DICTIONARY_STATSプロシージャ


すべてのディクショナリのスキーマ('SYS'、'SYSTEM'およびRDBMSコンポーネントのスキーマ)に関する統計情報を削除します。

DELETE_FIXED_OBJECTS_STATSプロシージャ


すべての固定表の統計情報を削除します。

DELETE_INDEX_STATSプロシージャ


索引に関連する統計情報を削除します。

DELETE_SCHEMA_STATSプロシージャ


スキーマに関連する統計情報を削除します。

DELETE_SYSTEM_STATSプロシージャ


システムの統計情報を削除します。

DELETE_TABLE_STATSプロシージャ


表に関連する統計情報を削除します。

DROP_STAT_TABLEプロシージャ


CREATE_STAT_TABLEで作成したユーザー統計表を削除します。

EXPORT_COLUMN_STATSプロシージャ


特定の列に関する統計情報を取り出し、stattabで識別されるユーザー統計表に格納します。

EXPORT_DATABASE_STATSプロシージャ


データベース内のすべてのオブジェクトに関する統計情報を取り出し、statown.stattabで識別されるユーザー統計表に格納します。

EXPORT_DICTIONARY_STATSプロシージャ


すべてのディクショナリのスキーマ('SYS'、'SYSTEM'およびRDBMSコンポーネントのスキーマ)に関する統計情報を取り出し、stattabで識別されるユーザー統計表に格納します。

EXPORT_FIXED_OBJECTS_STATSプロシージャ


固定表に関する統計情報を取り出し、stattabで識別されるユーザー統計表に格納します。

EXPORT_INDEX_STATSプロシージャ


特定の索引に関する統計情報を取り出し、stattabで識別されるユーザー統計表に格納します。

EXPORT_SCHEMA_STATSプロシージャ


ownnameで識別されるスキーマ内のすべてのオブジェクトに関する統計情報を取り出し、stattabで識別されるユーザー統計表に格納します。

EXPORT_SYSTEM_STATSプロシージャ


システムの統計情報を取り出し、ユーザー統計表に格納します。

EXPORT_TABLE_STATSプロシージャ


特定の表に関する統計情報を取り出し、ユーザー統計表に格納します。

FLUSH_DATABASE_MONITORING_INFOプロシージャ


メモリー内のすべての表の監視情報をディクショナリにフラッシュします。

GATHER_DATABASE_STATSプロシージャ


データベース内のすべてのオブジェクトに関する統計情報を収集します。

GATHER_DICTIONARY_STATSプロシージャ


ディクショナリのスキーマ('SYS'、'SYSTEM'およびRDBMSコンポーネントのスキーマ)に関する統計情報を収集します。

GATHER_FIXED_OBJECTS_STATSプロシージャ


固定オブジェクトの統計情報を収集します。

GATHER_INDEX_STATSプロシージャ


索引の統計情報を収集します。

GATHER_SCHEMA_STATSプロシージャ


スキーマ内のすべてのオブジェクトに関する統計情報を収集します。

GATHER_SYSTEM_STATSプロシージャ


システムの統計情報を収集します。

GATHER_TABLE_STATSプロシージャ


表と列(および索引)の統計情報を収集します。

GENERATE_STATSプロシージャ


関連するオブジェクトに関して以前に収集した統計情報から、オブジェクトの統計情報を生成します。

GET_COLUMN_STATSプロシージャ


列に関連するすべての情報を取得します。

GET_INDEX_STATSプロシージャ


索引に関連するすべての情報を取得します。

GET_PARAMファンクション


DBMS_STATSプロシージャのパラメータのデフォルト値を取得します。

GET_STATS_HISTORY_AVAILABILITYファンクション


統計履歴を使用できる最も古いタイムスタンプを取得します。

GET_STATS_HISTORY_RETENTIONファンクション


現在のリテンション値を戻します。

GET_SYSTEM_STATSプロシージャ


stattab(stattabがNULLの場合はディクショナリ)からシステムの統計情報を取得します。

GET_TABLE_STATSプロシージャ


表に関連するすべての情報を取得します。

IMPORT_COLUMN_STATSプロシージャ


stattabで識別されるユーザー統計表から特定の列に関する統計情報を取り出し、ディクショナリに格納します。

IMPORT_DATABASE_STATSプロシージャ


データベース内のすべてのオブジェクトに関する統計情報をユーザー統計表から取り出し、ディクショナリに格納します。

IMPORT_DICTIONARY_STATSプロシージャ


すべてのディクショナリのスキーマ('SYS'、'SYSTEM'およびRDBMSコンポーネントのスキーマ)に関する統計情報をユーザー統計表から取り出し、ディクショナリに格納します。

IMPORT_FIXED_OBJECTS_STATSプロシージャ


stattabで識別されるユーザー統計表から固定表に関する統計情報を取り出し、ディクショナリに格納します。

IMPORT_INDEX_STATSプロシージャ


stattabで識別されるユーザー統計表から特定の索引に関する統計情報を取り出し、ディクショナリに格納します。

IMPORT_SCHEMA_STATSプロシージャ


ownnameで識別されるスキーマ内のすべてのオブジェクトに関する統計情報をユーザー統計表から取り出し、ディクショナリに格納します。

IMPORT_SYSTEM_STATSプロシージャ


ユーザー統計表からシステムの統計情報を取り出し、ディクショナリに格納します。

IMPORT_TABLE_STATSプロシージャ


stattabで識別されるユーザー統計表から特定の表に関する統計情報を取り出し、ディクショナリに格納します。

LOCK_SCHEMA_STATSプロシージャ


スキーマのすべての表の統計情報をロックします。

LOCK_TABLE_STATSプロシージャ


表の統計情報をロックします。

PREPARE_COLUMN_VALUESプロシージャ


ユーザー指定の最小値、最大値およびヒストグラム終点のデータ型固有の値を、SET_COLUMN_STATSプロシージャを使用して将来格納するためにOracleの内部表記に変換します。

PREPARE_COLUMN_VALUES_NVARCHAR2プロシージャ


ユーザー指定の最小値、最大値およびヒストグラム終点のデータ型固有の値を、SET_COLUMN_STATSプロシージャを使用して将来格納するためにOracleの内部表記に変換します。

PREPARE_COLUMN_VALUES_ROWIDプロシージャ


ユーザー指定の最小値、最大値およびヒストグラム終点のデータ型固有の値を、SET_COLUMN_STATSプロシージャを使用して将来格納するためにOracleの内部表記に変換します。

PURGE_STATSプロシージャ


ディクショナリに保存されている統計情報の古いバージョンをパージします。

RESET_PARAM_DEFAULTSプロシージャ


すべてのパラメータのデフォルト値をOracleの推奨値にリセットします。

RESET_PARAM_DEFAULTSプロシージャ


データベースのすべての表の統計情報を、指定したタイムスタンプでリストアします。

RESTORE_DICTIONARY_STATSプロシージャ


すべてのディクショナリ表('SYS'、'SYSTEM'およびRDBMSコンポーネントのスキーマ)の統計情報を、指定したタイムスタンプでリストアします。

RESTORE_FIXED_OBJECTS_STATSプロシージャ


すべての固定表の統計情報を、指定したタイムスタンプでリストアします。

RESTORE_SCHEMA_STATSプロシージャ


スキーマのすべての表の統計情報を、指定したタイムスタンプでリストアします。

RESTORE_SYSTEM_STATSプロシージャ


スキーマのすべての表の統計情報を、指定したタイムスタンプでリストアします。

RESTORE_TABLE_STATSプロシージャ


指定したタイムスタンプ(as_of_timestamp)で、表の統計情報、および関連する索引と列の統計情報をリストアします。

SET_COLUMN_STATSプロシージャ


列に関連する情報を設定します。

SET_INDEX_STATSプロシージャ


索引に関連する情報を設定します。

SET_PARAMプロシージャ


DBMS_STATSプロシージャのパラメータのデフォルト値を設定します。

SET_SYSTEM_STATSプロシージャ


システムの統計情報を設定します。

SET_TABLE_STATSプロシージャ


表に関連する情報を設定します。

UNLOCK_SCHEMA_STATSプロシージャ


スキーマ内にあるすべての表の統計情報をロック解除します。

UNLOCK_TABLE_STATSプロシージャ


表の統計情報をロック解除します。

UPGRADE_STAT_TABLEプロシージャ


古い表のユーザー統計情報をアップグレードします。



ALTER_DATABASE_TAB_MONITORINGプロシージャ


注意:

詳細は、「推奨されないサブプログラム」を参照してください。

このプロシージャは、スキーマにおけるすべての表の機能を監視するDMLを使用可能または使用禁止にします。ただし、スナップショット・ログおよび表では監視がサポートされていないので対象外です。このプロシージャは、ALTER TABLE...MONITORING(またはNOMONITORING)を個別に発行するのと同等です。

構文

DBMS_STATS.ALTER_DATABASE_TAB_MONITORING (
   monitoring BOOLEAN DEFAULT TRUE,
   sysobjs    BOOLEAN DEFAULT FALSE);

パラメータ

表103-2 ALTER_DATABASE_TAB_MONITORINGプロシージャのパラメータ

パラメータ 説明

monitoring

TRUEの場合は監視を使用可能にし、FALSEの場合は監視を使用禁止にします。

sysobjs

TRUEの場合、ディクショナリ・オブジェクトの監視を変更します。


例外

ORA-20000: 権限が不十分です。


ALTER_SCHEMA_TAB_MONITORINGプロシージャ


注意:

詳細は、「推奨されないサブプログラム」を参照してください。

このプロシージャは、スキーマにおけるすべての表の機能を監視するDMLを使用可能または使用禁止にします。ただし、スナップショット・ログおよび表では監視がサポートされていないので対象外です。このプロシージャは、ALTER TABLE...MONITORING(またはNOMONITORING)を個別に発行するのと同等です。

構文

DBMS_STATS.ALTER_SCHEMA_TAB_MONITORING (
   ownname    VARCHAR2 DEFAULT NULL,
   monitoring BOOLEAN DEFAULT TRUE);

パラメータ

表103-3 ALTER_SCHEMA_TAB_MONITORINGプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前(NULLは現行のスキーマを意味します)。

monitoring

TRUEの場合は監視を使用可能にし、FALSEの場合は監視を使用禁止にします。


使用上の注意

GATHER_DATABASE_STATSまたはGATHER_SCHEMA_STATSGATHER AUTOまたはGATHER STALEオプションとともに使用する場合は、監視機能を使用可能にしてください。

例外

ORA-20000: 権限が不十分です。


ALTER_STATS_HISTORY_RETENTIONプロシージャ

このプロシージャは、統計履歴のリテンション値を変更します。統計履歴リテンションは、自動パージおよびPURGE_STATSプロシージャで使用します。

構文

DBMS_STATS.ALTER_STATS_HISTORY_RETENTION (
   retention       IN     NUMBER);

パラメータ

表103-4 ALTER_STATS_HISTORY_RETENTIONプロシージャのパラメータ

パラメータ 説明

retention

リテンション期間を日数で指定します。少なくとも指定された期間は、統計履歴が保持されます。有効範囲は1から365000です。また、次の値を特定の目的に使用できます。

  • 0 - 古い統計情報を保存しない。自動パージですべての統計履歴を削除する。

  • 1 - 自動パージで統計履歴を削除しない。

  • NULL - 統計履歴のリテンションをデフォルト値に変更する。


使用上の注意

このプロシージャを実行するには、SYSDBA、またはANALYZE ANY DICTIONARYANALYZE ANYの両方のシステム権限が必要です。

例外

ORA-20000: 権限が不十分です。


CONVERT_RAW_VALUEプロシージャ

このプロシージャは、最大値または最小値の内部表記をデータ型固有の値に変換します。GET_COLUMN_STATSまたはPREPARE_COLUMN_VALUESで入力されたStatRec構造のminvalフィールドとmaxvalフィールドの値が、有効な入力値です。

構文

DBMS_STATS.CONVERT_RAW_VALUE (
   rawval     RAW,
   resval OUT BINARY_FLOAT);

DBMS_STATS.CONVERT_RAW_VALUE (
   rawval     RAW,
   resval OUT BINARY_DOUBLE);

DBMS_STATS.CONVERT_RAW_VALUE (
   rawval     RAW,
   resval OUT DATE);

DBMS_STATS.CONVERT_RAW_VALUE (
   rawval     RAW,
   resval OUT NUMBER);

DBMS_STATS.CONVERT_RAW_VALUE (
   rawval     RAW,
   resval OUT VARCHAR2);

プラグマ

pragma restrict_references(convert_raw_value, WNDS, RNDS, WNPS, RNPS);

パラメータ

表103-5 CONVERT_RAW_VALUEプロシージャのパラメータ

パラメータ 説明

rawval

列最大または列最小のデータ型固有の出力パラメータのRAW型表記。

resval

変換済の型固有の値。



CONVERT_RAW_VALUE_NVARCHARプロシージャ

このプロシージャは、最大値または最小値の内部表記をデータ型固有の値に変換します。GET_COLUMN_STATSまたはPREPARE_COLUMN_VALUESで入力されたStatRec構造のminvalフィールドとmaxvalフィールドの値が、有効な入力値です。

構文

DBMS_STATS.CONVERT_RAW_VALUE_NVARCHAR (
   rawval     RAW,
   resval OUT NVARCHAR2);

プラグマ

pragma restrict_references(convert_raw_value_nvarchar, WNDS, RNDS, WNPS, RNPS);

パラメータ

表103-6 CONVERT_RAW_VALUE_NVARCHARプロシージャのパラメータ

パラメータ 説明

rawval

列最大または列最小のデータ型固有の出力パラメータのRAW型表記。

resval

変換済の型固有の値。



CONVERT_RAW_VALUE_ROWIDプロシージャ

このプロシージャは、最大値または最小値の内部表記をデータ型固有の値に変換します。GET_COLUMN_STATSまたはPREPARE_COLUMN_VALUESで入力されたStatRec構造のminvalフィールドとmaxvalフィールドの値が、有効な入力値です。

構文

DBMS_STATS.CONVERT_RAW_VALUE_ROWID (
   rawval     RAW,
   resval OUT ROWID);

プラグマ

pragma restrict_references(convert_raw_value_rowid, WNDS, RNDS, WNPS, RNPS);

パラメータ

表103-7 CONVERT_RAW_VALUE_ROWIDプロシージャのパラメータ

パラメータ 説明

rawval

列最大または列最小のデータ型固有の出力パラメータのRAW型表記。

resval

変換済の型固有の値。



CREATE_STAT_TABLEプロシージャ

このプロシージャは、統計情報を保持できるownnameのスキーマにあるstattabの名前で表を作成します。この表は、このパッケージのプロシージャを介して単独にアクセスされるため、この表を構成する列と型は互いに関係がありません。

構文

DBMS_STATS.CREATE_STAT_TABLE (
   ownname  VARCHAR2,
   stattab  VARCHAR2,
   tblspace VARCHAR2 DEFAULT NULL);

パラメータ

表103-8 CREATE_STAT_TABLEプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

stattab

作成する表の名前。ユーザーがディクショナリ統計情報を直接変更しない場合、この値は、stattabパラメータとして他のプロシージャに渡されます。

tblspace

統計表を作成する表領域。このパラメータを指定しないと、統計表はユーザーのデフォルトの表領域に作成されます。


例外

ORA-20000: 表がすでに存在するか、権限が不十分です。

ORA-20001: 表領域が存在しません


DELETE_COLUMN_STATSプロシージャ

このプロシージャは、列に関連する統計情報を削除します。

構文

DBMS_STATS.DELETE_COLUMN_STATS (
   ownname       VARCHAR2,
   tabname       VARCHAR2,
   colname       VARCHAR2,
   partname      VARCHAR2 DEFAULT NULL,
   stattab       VARCHAR2 DEFAULT NULL,
   statid        VARCHAR2 DEFAULT NULL,
   cascade_parts BOOLEAN  DEFAULT TRUE,
   statown       VARCHAR2 DEFAULT NULL,
   no_invalidate BOOLEAN  DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')),
   force         BOOLEAN DEFAULT FALSE);

パラメータ

表103-9 DELETE_COLUMN_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

tabname

列が所属している表の名前。

colname

列の名前。

partname

統計情報を削除する表パーティションの名前。表がパーティション化されていて、partnameNULLの場合、グローバルな列統計情報が削除されます。

stattab

統計情報を削除する場所を示すユーザー統計表の識別子。stattabNULLの場合、統計情報はディクショナリから直接削除されます。

statid

stattab内の統計情報を関連付ける識別子(オプション)(stattabNULLでない場合にのみ該当します)。

cascade_parts

表がパーティション化されていて、partnameNULLの場合、このパラメータをTRUEに設定すると、基礎となるすべてのパーティションについても列の統計情報が削除されます。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

この引数の値がTRUEの場合、列の統計情報は、ロックされていても削除されます。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20005: オブジェクト統計はロックされています


DELETE_DATABASE_STATSプロシージャ

このプロシージャは、データベース内のすべての表に関する統計情報を削除します。

構文

DBMS_STATS.DELETE_DATABASE_STATS (
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   statown          VARCHAR2 DEFAULT NULL,
   no_invalidate    BOOLEAN  DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')),
   force            BOOLEAN  DEFAULT FALSE);

パラメータ

表103-10 DELETE_DATABASE_STATSプロシージャのパラメータ

パラメータ 説明

stattab

統計情報を削除する場所を示すユーザー統計表の識別子。stattabNULLの場合、統計情報はディクショナリから直接削除されます。

statid

stattab内の統計情報を関連付ける識別子(オプション)(stattabNULLでない場合にのみ該当します)。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

この引数の値がTRUEの場合、データベース内の表の統計情報は、ロックされていても削除されます。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。


DELETE_DICTIONARY_STATSプロシージャ

このプロシージャは、すべてのディクショナリのスキーマ('SYS'、'SYSTEM'およびRDBMSコンポーネントのスキーマ)に関する統計情報を削除します。

構文

DBMS_STATS.DELETE_DICTIONARY_STATS (
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   statown          VARCHAR2 DEFAULT NULL,
   no_invalidate    BOOLEAN  DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')),
   force            BOOLEAN  DEFAULT FALSE);

パラメータ

表103-11 DELETE_DICTIONARY_STATSプロシージャのパラメータ

パラメータ 説明

stattab

統計情報を削除する場所を示すユーザー統計表の識別子。stattabNULLの場合、統計情報はディクショナリから直接削除されます。

statid

stattab内の統計情報を関連付ける識別子(オプション)(stattabNULLでない場合にのみ該当します)。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

この引数の値がTRUEの場合、データベース内の表の統計情報は、ロックされていても削除されます。


使用上の注意

このプロシージャを実行するには、SYSDBA、またはANALYZE ANY DICTIONARYANALYZE ANYの両方のシステム権限が必要です。

例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20002: ユーザー統計表が不正です。アップグレードする必要があります。


DELETE_FIXED_OBJECTS_STATSプロシージャ

このプロシージャは、すべての固定表の統計情報を削除します。

構文

DBMS_STATS.DELETE_FIXED_OBJECTS_STATS (
   stattab        VARCHAR2 DEFAULT NULL,
   statid         VARCHAR2 DEFAULT NULL,
   statown        VARCHAR2 DEFAULT NULL,
   no_invalidate  BOOLEAN  DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')),
   force          BOOLEAN  DEFAULT FALSE);

パラメータ

表103-12 DELETE_FIXED_OBJECTS_STATSプロシージャのパラメータ

パラメータ 説明

stattab

現在の統計情報を削除する場所を示すユーザー統計表の識別子。stattabNULLの場合、統計情報はディクショナリから直接削除されます。

statid

stattab内の統計情報を関連付ける識別子(オプション)。これは、stattabNULLでない場合のみ適用可能です。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

TRUEに設定されている場合、オブジェクトの統計情報がロックされていても、それを無視して統計情報を削除します。


使用上の注意

このプロシージャを実行するには、SYSDBAまたはANALYZE ANY DICTIONARYシステム権限が必要です。

例外

ORA-20000: 権限が不十分です。

ORA-20002: ユーザー統計表が不正です。アップグレードする必要があります。


DELETE_INDEX_STATSプロシージャ

このプロシージャは、索引に関連する統計情報を削除します。

構文

DBMS_STATS.DELETE_INDEX_STATS (
   ownname          VARCHAR2,
   indname          VARCHAR2,
   partname         VARCHAR2 DEFAULT NULL,
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   cascade_parts    BOOLEAN  DEFAULT TRUE,
   statown          VARCHAR2 DEFAULT NULL,
   no_invalidate    BOOLEAN  DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')),
   force            BOOLEAN DEFAULT FALSE);

パラメータ

表103-13 DELETE_INDEX_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

indname

索引の名前。

partname

統計情報を削除する索引パーティションの名前。索引がパーティション化されていて、partnameNULLの場合、索引統計情報はグローバル・レベルで削除されます。

stattab

統計情報を削除する場所を示すユーザー統計表の識別子。stattabNULLの場合、統計情報はディクショナリから直接削除されます。

statid

stattab内の統計情報を関連付ける識別子(オプション)(stattabNULLでない場合にのみ該当します)。

cascade_parts

索引がパーティション化されていて、partnameNULLの場合、このパラメータをTRUEに設定すると、基礎となるすべてのパーティションについても索引の統計情報が削除されます。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

この引数の値がTRUEの場合、索引の統計情報は、ロックされていても削除されます。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20005: オブジェクト統計はロックされています


DELETE_SCHEMA_STATSプロシージャ

このプロシージャは、スキーマ全体の統計情報を削除します。

構文

DBMS_STATS.DELETE_SCHEMA_STATS (
   ownname          VARCHAR2,
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   statown          VARCHAR2 DEFAULT NULL,
   no_invalidate    BOOLEAN DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')),
   force            BOOLEAN DEFAULT FALSE);

パラメータ

表103-14 DELETE_SCHEMA_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

stattab

統計情報を削除する場所を示すユーザー統計表の識別子。stattabNULLの場合、統計情報はディクショナリから直接削除されます。

statid

stattab内の統計情報を関連付ける識別子(オプション)(stattabNULLでない場合にのみ該当します)。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

この引数の値がTRUEの場合、スキーマ内の表の統計情報は、ロックされていても削除されます。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。


DELETE_SYSTEM_STATSプロシージャ

このプロシージャは、ワークロードの統計情報('INTERVAL'か、'START'と'STOP'の両方のオプションを使用して収集)を削除します。stattabが指定されていない場合は、デフォルトのnoworkloadの統計情報('NOWORKLOAD'オプションを使用して収集)にリセットします。stattabが指定されている場合、サブプログラムは、関連するstatidとともにすべてのシステム統計情報をstattabから削除します。

構文

DBMS_STATS.DELETE_SYSTEM_STATS (
   stattab       VARCHAR2 DEFAULT NULL,
   statid        VARCHAR2 DEFAULT NULL,
   statown       VARCHAR2 DEFAULT NULL);

パラメータ

表103-15 DELETE_SYSTEM_STATSプロシージャのパラメータ

パラメータ 説明

stattab

統計情報が保存されるユーザー統計表の識別子。

statid

stattabに保存された統計情報に関連付けられた、オプションの識別子。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20002: ユーザー統計表が不正です。アップグレードする必要があります。


DELETE_TABLE_STATSプロシージャ

このプロシージャは、表に関連する統計情報を削除します。

構文

DBMS_STATS.DELETE_TABLE_STATS (
   ownname          VARCHAR2,
   tabname          VARCHAR2,
   partname         VARCHAR2 DEFAULT NULL,
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   cascade_parts    BOOLEAN  DEFAULT TRUE,
   cascade_columns  BOOLEAN  DEFAULT TRUE,
   cascade_indexes  BOOLEAN  DEFAULT TRUE,
   statown          VARCHAR2 DEFAULT NULL,
   no_invalidate    BOOLEAN  DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')),
   force            BOOLEAN DEFAULT FALSE);

パラメータ

表103-16 DELETE_TABLE_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

tabname

列が所属している表の名前。

partname

統計情報を取得する表パーティションの名前。表がパーティション化されていて、partnameNULLの場合、統計情報はグローバルな表レベルで取り出されます。

stattab

統計情報を取り出す場所を示すユーザー統計表の識別子。stattabNULLの場合、統計情報はディクショナリから直接取り出されます。

statid

stattab内の統計情報を関連付ける識別子(オプション)(stattabNULLでない場合にのみ該当します)。

cascade_parts

表がパーティション化されていて、partnameNULLの場合、このパラメータをTRUEに設定すると、基礎となるすべてのパーティションについても表の統計情報が削除されます。

cascade_columns

基礎となるすべての列について、DELETE_COLUMN_STATSをコールする必要があることを示します(cascade_partsパラメータを渡します)。

cascade_indexes

基礎となるすべての索引について、DELETE_INDEX_STATSをコールする必要があることを示します(cascade_partsパラメータを渡します)。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

この引数の値がTRUEの場合、表の統計情報は、ロックされていても削除されます。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20005: オブジェクト統計はロックされています


DROP_STAT_TABLEプロシージャ

このプロシージャは、ユーザー統計表を削除します。

構文

DBMS_STATS.DROP_STAT_TABLE (
   ownname VARCHAR2,
   stattab VARCHAR2);

パラメータ

表103-17 DROP_STAT_TABLEプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

stattab

ユーザー統計表の識別子。


例外

ORA-20000: 表が存在しないか、権限が不十分です。


EXPORT_COLUMN_STATSプロシージャ

このプロシージャは、特定の列に関する統計情報を取り出し、stattabで識別されるユーザー統計表に格納します。

構文

DBMS_STATS.EXPORT_COLUMN_STATS (
   ownname  VARCHAR2,
   tabname  VARCHAR2,
   colname  VARCHAR2,
   partname VARCHAR2 DEFAULT NULL,
   stattab  VARCHAR2,
   statid   VARCHAR2 DEFAULT NULL,
   statown  VARCHAR2 DEFAULT NULL);

パラメータ

表103-18 EXPORT_COLUMN_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

tabname

列が所属している表の名前。

colname

列の名前。

partname

表パーティション名。表がパーティション化されていて、partnameNULLの場合、グローバルでパーティション化された列の統計情報がエクスポートされます。

stattab

統計情報の格納場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。


EXPORT_DATABASE_STATSプロシージャ

このプロシージャは、データベース内のすべてのオブジェクトに関する統計情報を取り出し、statown.stattabで識別されるユーザー統計表に格納します。

構文

DBMS_STATS.EXPORT_DATABASE_STATS (
   stattab VARCHAR2,
   statid  VARCHAR2 DEFAULT NULL,
   statown VARCHAR2 DEFAULT NULL);

パラメータ

表103-19 EXPORT_DATABASE_STATSプロシージャのパラメータ

パラメータ 説明

stattab

統計情報の格納場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。


EXPORT_DICTIONARY_STATSプロシージャ

このプロシージャは、すべてのディクショナリのスキーマ('SYS'、'SYSTEM'およびRDBMSコンポーネントのスキーマ)に関する統計情報を取り出し、stattabで識別されるユーザー統計表に格納します。

構文

DBMS_STATS.EXPORT_DICTIONARY_STATS (
   stattab VARCHAR2,
   statid  VARCHAR2 DEFAULT NULL,
   statown VARCHAR2 DEFAULT NULL);

パラメータ

表103-20 EXPORT_DICTIONARY_STATSプロシージャのパラメータ

パラメータ 説明

stattab

統計情報の格納場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。


使用上の注意

このプロシージャを実行するには、SYSDBAか、ANALYZE ANY DICTIONARYANALYZE ANYのシステム権限が必要です。

例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20002: ユーザー統計表が不正です。アップグレードする必要があります。


EXPORT_FIXED_OBJECTS_STATSプロシージャ

このプロシージャは、固定表に関する統計情報を取り出し、stattabで識別されるユーザー統計表に格納します。

構文

DBMS_STATS.EXPORT_FIXED_OBJECTS_STATS (
   stattab  VARCHAR2,
   statid   VARCHAR2 DEFAULT NULL,
   statown  VARCHAR2 DEFAULT NULL);

パラメータ

表103-21 EXPORT_FIXED_OBJECTS_STATSプロシージャのパラメータ

パラメータ 説明

stattab

統計情報の格納場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20002: ユーザー統計表が不正です。アップグレードする必要があります。


EXPORT_INDEX_STATSプロシージャ

このプロシージャは、特定の索引に関する統計情報を取り出し、stattabで識別されるユーザー統計表に格納します。

構文

DBMS_STATS.EXPORT_INDEX_STATS (
   ownname  VARCHAR2,
   indname  VARCHAR2,
   partname VARCHAR2 DEFAULT NULL,
   stattab  VARCHAR2,
   statid   VARCHAR2 DEFAULT NULL,
   statown  VARCHAR2 DEFAULT NULL);

パラメータ

表103-22 EXPORT_INDEX_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

indname

索引の名前。

partname

索引パーティション名。索引がパーティション化されていて、partnameNULLの場合、グローバルでパーティション化された索引統計情報がエクスポートされます。

stattab

統計情報の格納場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。


EXPORT_SCHEMA_STATSプロシージャ

このプロシージャは、ownnameで識別されるスキーマ内のすべてのオブジェクトに関する統計情報を取り出し、stattabで識別されるユーザー統計表に格納します。

構文

DBMS_STATS.EXPORT_SCHEMA_STATS (
   ownname VARCHAR2,
   stattab VARCHAR2,
   statid  VARCHAR2 DEFAULT NULL,
   statown VARCHAR2 DEFAULT NULL);

パラメータ

表103-23 EXPORT_SCHEMA_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

stattab

統計情報の格納場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。


EXPORT_SYSTEM_STATSプロシージャ

このプロシージャは、システムの統計情報を取り出し、stattabで識別されるユーザー統計表に格納します。

構文

DBMS_STATS.EXPORT_SYSTEM_STATS (
   stattab       VARCHAR2,
   statid        VARCHAR2 DEFAULT NULL,
   statown       VARCHAR2 DEFAULT NULL);

パラメータ

表103-24 EXPORT_SYSTEM_STATSプロシージャのパラメータ

パラメータ 説明

stattab

統計情報を格納する場所を記述したユーザー統計表の識別子。

statid

stattabに格納された統計情報に関連付けられた、オプションの識別子。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20002: ユーザー統計表が不正です。アップグレードする必要があります。

ORA-20003: システムの統計情報をエクスポートできません。


EXPORT_TABLE_STATSプロシージャ

このプロシージャは、特定の表に関する統計情報を取り出し、ユーザー統計表に格納します。cascadeを使用すると、指定した表に関連付けられている索引および列統計情報もすべてエクスポートされます。

構文

DBMS_STATS.EXPORT_TABLE_STATS (
   ownname  VARCHAR2,
   tabname  VARCHAR2,
   partname VARCHAR2 DEFAULT NULL,
   stattab  VARCHAR2,
   statid   VARCHAR2 DEFAULT NULL,
   cascade  BOOLEAN  DEFAULT TRUE,
   statown  VARCHAR2 DEFAULT NULL);

パラメータ

表103-25 EXPORT_TABLE_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

tabname

表の名前。

partname

表パーティション名。表がパーティション化されていて、partnameNULLの場合、グローバルでパーティション化された表の統計情報がエクスポートされます。

stattab

統計情報の格納場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

cascade

TRUEの場合は、この表の列と索引の統計情報もまたエクスポートされます。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。


FLUSH_DATABASE_MONITORING_INFOプロシージャ

このプロシージャは、メモリー内のすべての表の監視情報をディクショナリにフラッシュします。*_TAB_MODIFICATIONS*_TAB_STATISTICSおよび*_IND_STATISTICSビュー内の対応するエントリは、Oracleデータベースによる定期的なフラッシュを待たずに、ただちに更新されます。こうしたビューで最新の情報が必要な場合は、このプロシージャが有効です。GATHER_*_STATSプロシージャの内部処理で監視情報は自動的にフラッシュされるため、統計情報の収集前にこのプロシージャを実行する必要はありません。

構文

DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;

例外

ORA-20000: 権限が不十分です。


GATHER_DATABASE_STATSプロシージャ

このプロシージャは、データベース内のすべてのオブジェクトに関する統計情報を収集します。

構文

DBMS_STATS.GATHER_DATABASE_STATS (
   estimate_percent NUMBER   DEFAULT to_estimate_percent_type
                                                (get_param('ESTIMATE_PERCENT')),
   block_sample     BOOLEAN  DEFAULT FALSE,
   method_opt       VARCHAR2 DEFAULT get_param('METHOD_OPT'),
   degree           NUMBER   DEFAULT to_degree_type(get_param('DEGREE')),
   granularity      VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'),
   cascade          BOOLEAN  DEFAULT to_cascade_type(get_param('CASCADE')),
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   options          VARCHAR2 DEFAULT 'GATHER',
   objlist          OUT      ObjectTab,
   statown          VARCHAR2 DEFAULT NULL,
   gather_sys       BOOLEAN  DEFAULT TRUE,
   no_invalidate    BOOLEAN  DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')));

DBMS_STATS.GATHER_DATABASE_STATS (
   estimate_percent NUMBER   DEFAULT to_estimate_percent_type
                                                (get_param('ESTIMATE_PERCENT')),
   block_sample     BOOLEAN  DEFAULT FALSE,
   method_opt       VARCHAR2 DEFAULT get_param('METHOD_OPT'),
   degree           NUMBER   DEFAULT to_degree_type(get_param('DEGREE')),
   granularity      VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'),
   cascade          BOOLEAN  DEFAULT to_cascade_type(get_param('CASCADE')),
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   options          VARCHAR2 DEFAULT 'GATHER',
   statown          VARCHAR2 DEFAULT NULL,
   gather_sys       BOOLEAN  DEFAULT TRUE,
   no_invalidate    BOOLEAN  DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')));

パラメータ

表103-26 GATHER_DATABASE_STATSプロシージャのパラメータ

パラメータ 説明

estimate_percent

推定する行のパーセント(NULLは計算を意味します)。有効な範囲は、0.000001から100です。適切な統計を行うために最適なサンプル・サイズをOracleで決定するには、定数DBMS_STATS.AUTO_SAMPLE_SIZEを使用します。これがデフォルトです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。

block_sample

ランダム行サンプリングのかわりにランダム・ブロック・サンプリングを使用するかどうかを示します。ランダム・ブロック・サンプリングがより効率的ですが、データがディスク上にランダムに分散していない場合、サンプル値はある程度相関があります。統計情報の推定を行った場合にのみ該当します。

method_opt

次を受け入れます。

  • FOR ALL [INDEXED | HIDDEN] COLUMNS [size_clause]

  • FOR COLUMNS [size clause] column|attribute [size_clause] [,column|attribute [size_clause]...]

size_clauseは、size_clause := SIZE {integer | REPEAT | AUTO | SKEWONLY}のように定義されます。


- integer: ヒストグラム・バケット数。 1から254の範囲です。
- REPEAT: すでにヒストグラムがある列に対してのみ、ヒストグラムを収集します。
- AUTO: 列のデータ配分とワークロードに基づいて、ヒストグラムを収集する列が判断されます。
- SKEWONLY: 列のデータ配分に基づいて、ヒストグラムを収集する列が判断されます。

デフォルトはFOR ALL COLUMNS SIZE AUTOです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。

degree

並列度。degreeのデフォルトはNULLです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。NULLの場合、CREATE TABLE文またはALTER TABLE文のDEGREE句で指定された表のデフォルト値が使用されます。初期化パラメータに基づいてデフォルト値を指定するには、定数DBMS_STATS.DEFAULT_DEGREEを使用します。値にAUTO_DEGREEを指定すると、並列度が自動的に決定されます。オブジェクトのサイズに応じて、1(シリアル実行)またはDEFAULT_DEGREE(CPU数と初期化パラメータに基づくシステム・デフォルト値)になります。

granularity

収集する統計情報の細分化(表がパーティション化されている場合にのみ該当します)。

ALL - すべての統計情報(サブパーティション、パーティションおよびグローバル)を収集します。

AUTO - パーティション化のタイプに基づいて細分化を決定します。これがデフォルト値です。

DEFAULT - グローバルおよびパーティション・レベルの統計情報を収集します。このオプションは廃止されます。現在でもサポートされていますが、このドキュメントでの記載は、レガシー・システムのためのものです。グローバルおよびパーティション・レベルの統計情報を収集するときは、GLOBAL AND PARTITIONを指定してください。現在のデフォルト値はAUTOなので、注意してください。

GLOBAL - グローバルな統計情報を収集します。

GLOBAL AND PARTITION - グローバルおよびパーティション・レベルの統計情報を収集します。サブパーティション・レベルの統計情報は、それがコンポジット・パーティション・オブジェクトである場合でも収集されます。

PARTITION - パーティション・レベルの統計情報を収集します。

SUBPARTITION - サブパーティション・レベルの統計情報を収集します。

cascade

索引についても統計情報を収集します。索引統計情報の収集はパラレル化されません。このオプションを使用することは、表と列の統計情報の収集に加えて、データベース内の各索引でGATHER_INDEX_STATSプロシージャを実行するのと同じです。索引の統計情報を収集するかどうかをOracleが決定できるようにするには、定数DBMS_STATS.AUTO_CASCADEを使用します。これがデフォルトです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。

stattab

現在の統計情報の保存場所を示すユーザー統計表の識別子。

統計表は、分析するオブジェクトと同じスキーマに常駐するとみなされるので、各スキーマにこのオプションを使用するための表が1つ必要です。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

options

統計情報を収集するオブジェクトの詳細は、次のように指定します。

GATHER: スキーマ内のすべてのオブジェクトに関する統計情報を収集します。

GATHER AUTO: 必要な統計情報をすべて自動的に収集します。Oracleは、新しい統計情報を必要とするオブジェクトを暗黙的に判別し、その統計情報を収集する方法を判別します。GATHER AUTOが指定された場合、有効な追加パラメータはstattabstatidobjlistおよびstatownのみです。その他のパラメータ設定はすべて無視されます。処理されたオブジェクトのリストを戻します。

GATHER STALE: *_tab_modificationsビューを調べて判別した失効オブジェクトについて、統計情報を収集します。また、失効と判別されたオブジェクトのリストも戻します。

GATHER EMPTY: 現在統計情報がないオブジェクトの統計情報を収集します。統計情報がないオブジェクトのリストを戻します。

LIST AUTO: GATHER AUTOを使用して処理されるオブジェクトのリストを戻します。

LIST STALE: *_tab_modificationsビューを調べて判別した失効オブジェクトのリストを戻します。

LIST EMPTY: 現在統計情報がないオブジェクトのリストを戻します。

objlist

失効または空と判別されたオブジェクトのリスト。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。

gather_sys

SYSユーザーが所有するオブジェクトの統計情報を収集します。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。


使用上の注意

外部表に関する統計情報は、このプロシージャでは収集されません。

例外

ORA-20000: 権限が不十分です。

ORA-20001: 入力値が無効です。


GATHER_DICTIONARY_STATSプロシージャ

このプロシージャは、ディクショナリのスキーマ('SYS'、'SYSTEM'およびRDBMSコンポーネントのスキーマ)に関する統計情報を収集します。

構文

DBMS_STATS.GATHER_DICTIONARY_STATS (
   comp_id          VARCHAR2 DEFAULT NULL,
   estimate_percent NUMBER   DEFAULT to_estimate_percent_type
                                                (get_param('ESTIMATE_PERCENT')),
   block_sample     BOOLEAN  DEFAULT FALSE,
   method_opt       VARCHAR2 DEFAULT get_param('METHOD_OPT'),
   degree           NUMBER   DEFAULT to_degree_type(get_param('DEGREE')),
   granularity      VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'),
   cascade          BOOLEAN  DEFAULT to_cascade_type(get_param('CASCADE')),
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   options          VARCHAR2 DEFAULT 'GATHER AUTO',
   objlist    OUT   ObjectTab,
   statown          VARCHAR2 DEFAULT NULL,
   no_invalidate    BOOLEAN  DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')));

DBMS_STATS.GATHER_DICTIONARY_STATS (
   comp_id           VARCHAR2 DEFAULT NULL,
   estimate_percent  NUMBER DEFAULT
                          to_estimate_percent_type(GET_PARAM('ESTIMATE_PERCENT')),
   block_sample      BOOLEAN DEFAULT FALSE,
   method_opt        VARCHAR2 DEFAULT GET_PARAM('METHOD_OPT'),
   degree            NUMBER DEFAULT to_degree_type(GET_PARAM('DEGREE')),
   granularity       VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'),
   cascade           BOOLEAN DEFAULT to_cascade_type(GET_PARAM('CASCADE')),
   stattab           VARCHAR2 DEFAULT NULL,
   statid            VARCHAR2 DEFAULT NULL,
   options           VARCHAR2 DEFAULT 'GATHER AUTO',
   statown           VARCHAR2 DEFAULT NULL,
   no_invalidate     BOOLEAN DEFAULT
                               to_no_invalidate_type(get_param('NO_INVALIDATE')));

パラメータ

表103-27 GATHER_DICTIONARY_STATSプロシージャのパラメータ

パラメータ 説明

comp_id

分析するスキーマのコンポーネントID(NULLを指定すると、すべてのRDBMSコンポーネントのスキーマが分析されます)。DBA_REGISTRYビューのcomp_id列を参照してください。このプロシージャでは、引数の指定内容に関係なく、'SYS'スキーマと'SYSTEM'スキーマの統計情報を常に収集します。

estimate_percent

推定する行のパーセント(NULLは計算を意味します)。有効な範囲は、0.000001から100です。適切な統計を行うために最適なサンプル・サイズをOracleで決定するには、定数DBMS_STATS.AUTO_SAMPLE_SIZEを使用します。これがデフォルトです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。

block_sample

ランダム行サンプリングのかわりにランダム・ブロック・サンプリングを使用するかどうかを決定します。ランダム・ブロック・サンプリングがより効率的ですが、データがディスク上にランダムに分散していない場合、サンプル値はある程度相関があります。統計情報の推定を実行した場合にのみ該当します。

method_opt

次を受け入れます。

  • FOR ALL [INDEXED | HIDDEN] COLUMNS [size_clause]

  • FOR COLUMNS [size clause] column|attribute [size_clause] [,column|attribute [size_clause]...]

size_clauseは、size_clause := SIZE {integer | REPEAT | AUTO | SKEWONLY}のように定義されます。


- integer: ヒストグラム・バケット数。 1から254の範囲です。
- REPEAT: すでにヒストグラムがある列に対してのみ、ヒストグラムを収集します。
- AUTO: 列のデータ配分とワークロードに基づいて、ヒストグラムを収集する列が判断されます。
- SKEWONLY: 列のデータ配分に基づいて、ヒストグラムを収集する列が判断されます。

デフォルトはFOR ALL COLUMNS SIZE AUTOです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。

degree

並列度。degreeのデフォルトはNULLです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。NULLの場合、CREATE文またはALTER INDEX文のDEGREE句で指定された表のデフォルト値が使用されます。初期化パラメータに基づいたデフォルト値には、定数DBMS_STATS.DEFAULT_DEGREEを使用します。値にAUTO_DEGREEを指定すると、並列度が自動的に決定されます。オブジェクトのサイズに応じて、1(シリアル実行)またはDEFAULT_DEGREE(CPU数と初期化パラメータに基づくシステム・デフォルト値)になります。

granularity

収集する統計情報の細分化(表がパーティション化されている場合にのみ該当します)。

ALL - すべての統計情報(サブパーティション、パーティションおよびグローバル)を収集します。

AUTO - パーティション化のタイプに基づいて細分化を決定します。これがデフォルト値です。

DEFAULT - グローバルおよびパーティション・レベルの統計情報を収集します。このオプションは廃止されます。現在でもサポートされていますが、このドキュメントでの記載は、レガシー・システムのためのものです。グローバルおよびパーティション・レベルの統計情報を収集するときは、GLOBAL AND PARTITIONを指定してください。現在のデフォルト値はAUTOなので、注意してください。

GLOBAL - グローバルな統計情報を収集します。

GLOBAL AND PARTITION - グローバルおよびパーティション・レベルの統計情報を収集します。サブパーティション・レベルの統計情報は、それがコンポジット・パーティション・オブジェクトである場合でも収集されます。

PARTITION - パーティション・レベルの統計情報を収集します。

SUBPARTITION - サブパーティション・レベルの統計情報を収集します。

cascade

索引についても統計情報を収集します。索引統計情報の収集はパラレル化されません。このオプションを使用することは、表と列の統計情報の収集に加えて、スキーマ内の各索引でGATHER_INDEX_STATSプロシージャを実行するのと同じです。索引の統計情報を収集するかどうかをOracleが決定できるようにするには、定数DBMS_STATS.AUTO_CASCADEを使用します。これがデフォルトです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。

stattab

現在の統計情報の保存場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

options

統計情報を収集するオブジェクトの詳細は、次のように指定します。

  • GATHER: スキーマ内のすべてのオブジェクトに関する統計情報を収集します。

  • GATHER AUTO: 必要な統計情報をすべて自動的に収集します。Oracleは、新しい統計情報を必要とするオブジェクトを暗黙的に判別し、その統計情報を収集する方法を判別します。'GATHER AUTO'が指定された場合、有効な追加パラメータはcomp_idstattabstatidおよびstatownのみです。その他のパラメータ設定はすべて無視されます。また、処理されたオブジェクトのリストも戻します。

  • GATHER STALE: *_tab_modificationsビューを調べて判別した失効オブジェクトについて、統計情報を収集します。また、失効と判別されたオブジェクトのリストも戻します。

  • GATHER EMPTY: 現在統計情報がないオブジェクトの統計情報を収集します。また、統計情報がないオブジェクトのリストも戻します。

  • LIST AUTO: 'GATHER AUTO'を使用して処理されるオブジェクトのリストを戻します。

  • LIST STALE: *_tab_modificationsビューを調べて判別した失効オブジェクトについて、リストを戻します。

  • LIST EMPTY: 現在統計情報がないオブジェクトのリストを戻します。

objlist

失効または空と判別されたオブジェクトのリスト。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。


使用上の注意

このプロシージャを実行するには、SYSDBA、またはANALYZE ANY DICTIONARYANALYZE ANYの両方のシステム権限が必要です。

例外

ORA-20000: 索引が存在しないか、権限が不十分です。

ORA-20001: 入力値が無効です。

ORA-20002: ユーザー統計表が不正です。アップグレードする必要があります。


GATHER_FIXED_OBJECTS_STATSプロシージャ

このプロシージャは、すべての固定オブジェクト(動的パフォーマンス表)に関する統計情報を収集します。

構文

DBMS_STATS.GATHER_FIXED_OBJECTS_STATS (
   stattab        VARCHAR2 DEFAULT NULL,
   statid         VARCHAR2 DEFAULT NULL,
   statown        VARCHAR2 DEFAULT NULL,
   no_invalidate  BOOLEAN  DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')));

パラメータ

表103-28 GATHER_FIXED_OBJECTS_STATSプロシージャのパラメータ

パラメータ 説明

stattab

現在の統計情報の保存場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。


使用上の注意

このプロシージャを実行するには、SYSDBAまたはANALYZE ANY DICTIONARYシステム権限が必要です。

例外

ORA-20000: 権限が不十分です。

ORA-20001: 入力値が無効です。

ORA-20002: ユーザー統計表が不正です。アップグレードする必要があります。


GATHER_INDEX_STATSプロシージャ

このプロシージャは、索引の統計情報を収集します。このプロシージャは、可能なかぎり多くの作業をパラレル化します。個々のパラメータで説明するように、いくつかの制限があります。この操作では、クラスタ索引、ドメイン索引、ビットマップ・ジョイン・インデックスなど、特定タイプの索引でのパラレル化は行いません。granularity引数およびno_invalidate引数は、これらのタイプの索引とは関係がありません。

構文

DBMS_STATS.GATHER_INDEX_STATS (
   ownname          VARCHAR2,
   indname          VARCHAR2,
   partname         VARCHAR2 DEFAULT NULL,
   estimate_percent NUMBER   DEFAULT to_estimate_percent_type
                                                (GET_PARAM('ESTIMATE_PERCENT')),
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   statown          VARCHAR2 DEFAULT NULL,
   degree           NUMBER   DEFAULT to_degree_type(get_param('DEGREE')),
   granularity      VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'),
   no_invalidate    BOOLEAN  DEFAULT to_no_invalidate_type
                                               (GET_PARAM('NO_INVALIDATE')),
   force            BOOLEAN DEFAULT FALSE);

パラメータ

表103-29 GATHER_INDEX_STATSプロシージャのパラメータ

パラメータ 説明

ownname

分析する索引のスキーマ。

indname

索引の名前。

partname

パーティションの名前。

estimate_percent

推定する行のパーセント(NULLは計算を意味します)。有効な範囲は、0.000001から100です。適切な統計を行うために最適なサンプル・サイズをOracleで決定するには、定数DBMS_STATS.AUTO_SAMPLE_SIZEを使用します。これがデフォルトです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。

stattab

現在の統計情報の保存場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

degree

並列度。degreeのデフォルトはNULLです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。NULLの場合、CREATE文またはALTER INDEX文のDEGREE句で指定された表のデフォルト値が使用されます。初期化パラメータに基づいたデフォルト値には、定数DBMS_STATS.DEFAULT_DEGREEを使用します。値にAUTO_DEGREEを指定すると、並列度が自動的に決定されます。オブジェクトのサイズに応じて、1(シリアル実行)またはDEFAULT_DEGREE(CPU数と初期化パラメータに基づくシステム・デフォルト値)になります。

granularity

収集する統計情報の細分化(表がパーティション化されている場合にのみ該当します)。

ALL - すべての統計情報(サブパーティション、パーティションおよびグローバル)を収集します。

AUTO - パーティション化のタイプに基づいて細分化を決定します。これがデフォルト値です。

DEFAULT - グローバルおよびパーティション・レベルの統計情報を収集します。このオプションは廃止されます。現在でもサポートされていますが、このドキュメントでの記載は、レガシー・システムのためのものです。グローバルおよびパーティション・レベルの統計情報を収集するときは、GLOBAL AND PARTITIONを指定してください。現在のデフォルト値はAUTOなので、注意してください。

GLOBAL - グローバルな統計情報を収集します。

GLOBAL AND PARTITION - グローバルおよびパーティション・レベルの統計情報を収集します。サブパーティション・レベルの統計情報は、それがコンポジット・パーティション・オブジェクトである場合でも収集されます。

PARTITION - パーティション・レベルの統計情報を収集します。

SUBPARTITION - サブパーティション・レベルの統計情報を収集します。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

ロックされている場合でも、オブジェクトの統計情報を収集します。


例外

ORA-20000: 索引が存在しないか、権限が不十分です。

ORA-20001: 入力値が無効です。


GATHER_SCHEMA_STATSプロシージャ

このプロシージャは、スキーマ内のすべてのオブジェクトに関する統計情報を収集します。

構文

DBMS_STATS.GATHER_SCHEMA_STATS (
   ownname          VARCHAR2,
   estimate_percent NUMBER   DEFAULT to_estimate_percent_type
                                                (get_param('ESTIMATE_PERCENT')),
   block_sample     BOOLEAN  DEFAULT FALSE,
   method_opt       VARCHAR2 DEFAULT get_param('METHOD_OPT'),
   degree           NUMBER   DEFAULT to_degree_type(get_param('DEGREE')),
   granularity      VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'),
   cascade          BOOLEAN  DEFAULT to_cascade_type(get_param('CASCADE')),
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   options          VARCHAR2 DEFAULT 'GATHER',
   objlist          OUT      ObjectTab,
   statown          VARCHAR2 DEFAULT NULL,
   no_invalidate    BOOLEAN  DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')),
  force             BOOLEAN DEFAULT FALSE);

DBMS_STATS.GATHER_SCHEMA_STATS (
   ownname          VARCHAR2,
   estimate_percent NUMBER   DEFAULT to_estimate_percent_type
                                                (get_param('ESTIMATE_PERCENT')),
   block_sample     BOOLEAN  DEFAULT FALSE,
   method_opt       VARCHAR2 DEFAULT get_param('METHOD_OPT'),
   degree           NUMBER   DEFAULT to_degree_type(get_param('DEGREE')),
   granularity      VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'),
   cascade          BOOLEAN  DEFAULT to_cascade_type(get_param('CASCADE')),
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   options          VARCHAR2 DEFAULT 'GATHER',
   statown          VARCHAR2 DEFAULT NULL,
   no_invalidate    BOOLEAN  DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE'),
   force            BOOLEAN DEFAULT FALSE);

パラメータ

表103-30 GATHER_SCHEMA_STATSプロシージャのパラメータ

パラメータ 説明

ownname

分析するスキーマ(NULLは現行のスキーマを意味します)。

estimate_percent

推定する行のパーセント(NULLは計算を意味します)。有効な範囲は、0.000001から100です。適切な統計を行うために最適なサンプル・サイズをOracleで決定するには、定数DBMS_STATS.AUTO_SAMPLE_SIZEを使用します。これがデフォルトです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。

block_sample

ランダム行サンプリングのかわりにランダム・ブロック・サンプリングを使用するかどうかを示します。ランダム・ブロック・サンプリングがより効率的ですが、データがディスク上にランダムに分散していない場合、サンプル値はある程度相関があります。統計情報の推定を行った場合にのみ該当します。

method_opt

次を受け入れます。

  • FOR ALL [INDEXED | HIDDEN] COLUMNS [size_clause]

  • FOR COLUMNS [size clause] column|attribute [size_clause] [,column|attribute [size_clause]...]

size_clauseは、size_clause := SIZE {integer | REPEAT | AUTO | SKEWONLY}のように定義されます。


- integer: ヒストグラム・バケット数。 1から254の範囲です。
- REPEAT: すでにヒストグラムがある列に対してのみ、ヒストグラムを収集します。
- AUTO: 列のデータ配分とワークロードに基づいて、ヒストグラムを収集する列が判断されます。
- SKEWONLY: 列のデータ配分に基づいて、ヒストグラムを収集する列が判断されます。

デフォルトはFOR ALL COLUMNS SIZE AUTOです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。

degree

並列度。degreeのデフォルトはNULLです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。NULLの場合、CREATE TABLE文またはALTER TABLE文のDEGREE句で指定された表のデフォルト値が使用されます。 初期化パラメータに基づくデフォルト値を指定するには、定数DBMS_STATS.DEFAULT_DEGREEを使用します。値にAUTO_DEGREEを指定すると、並列度が自動的に決定されます。オブジェクトのサイズに応じて、1(シリアル実行)またはDEFAULT_DEGREE(CPU数と初期化パラメータに基づくシステム・デフォルト値)になります。

granularity

収集する統計情報の細分化(表がパーティション化されている場合にのみ該当します)。

ALL - すべての統計情報(サブパーティション、パーティションおよびグローバル)を収集します。

AUTO - パーティション化のタイプに基づいて細分化を決定します。これがデフォルト値です。

DEFAULT - グローバルおよびパーティション・レベルの統計情報を収集します。このオプションは廃止されます。現在でもサポートされていますが、このドキュメントでの記載は、レガシー・システムのためのものです。グローバルおよびパーティション・レベルの統計情報を収集するときは、GLOBAL AND PARTITIONを指定してください。現在のデフォルト値はAUTOなので、注意してください。

GLOBAL - グローバルな統計情報を収集します。

GLOBAL AND PARTITION - グローバルおよびパーティション・レベルの統計情報を収集します。サブパーティション・レベルの統計情報は、それがコンポジット・パーティション・オブジェクトである場合でも収集されます。

PARTITION - パーティション・レベルの統計情報を収集します。

SUBPARTITION - サブパーティション・レベルの統計情報を収集します。

cascade

索引についても統計情報を収集します。索引統計情報の収集はパラレル化されません。このオプションを使用することは、表と列の統計情報の収集に加えて、スキーマ内の各索引でGATHER_INDEX_STATSプロシージャを実行するのと同じです。索引の統計情報を収集するかどうかをOracleが決定できるようにするには、定数DBMS_STATS.AUTO_CASCADEを使用します。これがデフォルトです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。

stattab

現在の統計情報の保存場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

options

統計情報を収集するオブジェクトの詳細は、次のように指定します。

GATHER: スキーマ内のすべてのオブジェクトに関する統計情報を収集します。

GATHER AUTO: 必要な統計情報をすべて自動的に収集します。Oracleは、新しい統計情報を必要とするオブジェクトを暗黙的に判別し、その統計情報を収集する方法を判別します。GATHER AUTOが指定された場合、有効な追加パラメータはownnamestattabstatidobjlistおよびstatownのみです。その他のパラメータ設定はすべて無視されます。処理されたオブジェクトのリストを戻します。

GATHER STALE: *_tab_modificationsビューを調べて判別した失効オブジェクトについて、統計情報を収集します。また、失効と判別されたオブジェクトのリストも戻します。

GATHER EMPTY: 現在統計情報がないオブジェクトについて統計情報を収集し、統計情報なしと判別されたオブジェクトのリストも戻します。

LIST AUTO: GATHER AUTOを使用して処理されるオブジェクトのリストを戻します。

LIST STALE: *_tab_modificationsビューを調べて判別した失効オブジェクトのリストを戻します。

LIST EMPTY: 現在統計情報がないオブジェクトのリストを戻します。

objlist

失効または空と判別されたオブジェクトのリスト。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

ロックされている場合でも、オブジェクトの統計情報を収集します。


使用上の注意

auto_sample_size定数を使用すると、DBMS_STATS.GATHER_SCHEMA_STATSは、パーティション化された複数の表に対してそれぞれ異なるサンプリング・レートを生成します。DBMS_STATSでは、各種の統計用に適切なサンプル・サイズを決定します。このサイズは、表または列ごとに(パーティション化されていればパーティションごとにも)異なります。約5000行を取得するサンプリング・レートから開始して、統計用の方程式に基づいて結果を調べます。満足できる結果が得られなかった場合は、サンプリング・レートを増やしてこのプロセスを繰り返します。

通常は、個別値の数を列に取得する統計では、他の場合よりもサンプリング・レートを高く設定する必要があります。これは特に、個別値の発生回数が少ない場合に当てはまります。

サンプリングのパーセント指定に特定の値を使用できますが、次の場合は、DBMS_STATSでその値が有効ではなくなります。

外部表に関する統計情報は、このプロシージャでは収集されません。

例外

ORA-20000: スキーマが存在しないか、権限が不十分です。

ORA-20001: 入力値が無効です。


GATHER_SYSTEM_STATSプロシージャ

このプロシージャは、システムの統計情報を収集します。

構文

DBMS_STATS.GATHER_SYSTEM_STATS (
   gathering_mode   VARCHAR2 DEFAULT 'NOWORKLOAD',
   interval         INTEGER  DEFAULT NULL,
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   statown          VARCHAR2 DEFAULT NULL);

パラメータ

表103-31 GATHER_SYSTEM_STATSプロシージャのパラメータ

パラメータ 説明

gathering_mode

モードの値は、次のとおりです。

NOWORKLOAD: I/Oシステムの特性を取得します。データベースのサイズにもよりますが、収集に数分間かかる場合があります。この時間の間に、Oracleは、I/Oシステムに要するリード・シーク時間と転送速度の平均値を見積もります。このモードは、すべてのワークロードに適しています。Oracleでは、データベースおよび表領域の作成後にGATHER_SYSTEM_STATS('noworkload')を実行することをお薦めします。ワークロードのシステム統計を正確に調整するには、'START'オプションと'STOP'オプションをともに使用するか、または'INTERVAL'オプションを使用します。'NOWORKLOAD'とワークロード固有の統計情報('INTERVAL'を使用するか、または'START'と'STOP'をともに使用して収集する統計情報)の両方を収集する場合、そのワークロードの統計情報はオプティマイザが使用します。収集されるコンポーネント: cpuspeednwioseektimiotfrspeed

INTERVAL: 指定された間隔でシステムのアクティビティを取得します。このモードは、intervalパラメータとの組合せで動作します。間隔は分単位で指定してください。指定した後、ディクショナリまたはstattabでシステムの統計情報が作成または更新されます。 予定よりも早く収集を停止する場合は、GATHER_SYSTEM_STATS (gathering_mode=>'STOP')を使用できます。収集されるコンポーネント: maxthrslavethrcpuspeedsreadtimmreadtimmbrc

START | STOP: 指定された開始時間から停止時間の間にシステムのアクティビティを取得し、経過期間の統計情報を使用してディクショナリまたはstattabをリフレッシュします。Interval値は無視されます。収集されるコンポーネント: maxthrslavethrcpuspeedsreadtimmreadtimmbrc

interval

統計情報を収集する時間(分単位)。このパラメータが適用されるのは、gathering_mode='INTERVAL'の場合のみです。

stattab

統計情報が保存されるユーザー統計表の識別子。

statid

stattabに保存された統計情報に関連付けられた、オプションの識別子。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: 入力値が無効です

ORA-20002: ユーザー統計表が不正です。アップグレードする必要があります。

ORA-20003: システムの統計情報を収集できません。

ORA-20004: INTERVALモードでエラーが発生しました。システム・パラメータjob_queue_processes>0である必要があります。


GATHER_TABLE_STATSプロシージャ

このプロシージャは、表と列(および索引)の統計情報を収集します。このプロシージャは、可能なかぎり多くの作業をパラレル化しますが、個々のパラメータで説明するように、いくつかの制限があります。

構文

DBMS_STATS.GATHER_TABLE_STATS (
   ownname          VARCHAR2,
   tabname          VARCHAR2,
   partname         VARCHAR2 DEFAULT NULL,
   estimate_percent NUMBER   DEFAULT to_estimate_percent_type
                                                (get_param('ESTIMATE_PERCENT')),
   block_sample     BOOLEAN  DEFAULT FALSE,
   method_opt       VARCHAR2 DEFAULT get_param('METHOD_OPT'),
   degree           NUMBER   DEFAULT to_degree_type(get_param('DEGREE')),
   granularity      VARCHAR2 DEFAULT GET_PARAM('GRANULARITY'),
   cascade          BOOLEAN  DEFAULT to_cascade_type(get_param('CASCADE')),
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   statown          VARCHAR2 DEFAULT NULL,
   no_invalidate    BOOLEAN  DEFAULT  to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')),
   force            BOOLEAN DEFAULT FALSE);

パラメータ

表103-32 GATHER_TABLE_STATSプロシージャのパラメータ

パラメータ 説明

ownname

分析する表のスキーマ。

tabname

表の名前。

partname

パーティションの名前。

estimate_percent

推定する行のパーセント(NULLは計算を意味します)。有効な範囲は、0.000001から100です。適切な統計を行うために最適なサンプル・サイズをOracleで決定するには、定数DBMS_STATS.AUTO_SAMPLE_SIZEを使用します。これがデフォルトです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。

block_sample

ランダム行サンプリングのかわりにランダム・ブロック・サンプリングを使用するかどうかを示します。ランダム・ブロック・サンプリングがより効率的ですが、データがディスク上にランダムに分散していない場合、サンプル値はある程度相関があります。統計情報の推定を行った場合にのみ該当します。

method_opt

次を受け入れます。

  • FOR ALL [INDEXED | HIDDEN] COLUMNS [size_clause]

  • FOR COLUMNS [size clause] column|attribute [size_clause] [,column|attribute [size_clause]...]

size_clauseは、size_clause := SIZE {integer | REPEAT | AUTO | SKEWONLY}のように定義されます。


- integer: ヒストグラム・バケット数。 1から254の範囲です。
- REPEAT: すでにヒストグラムがある列に対してのみ、ヒストグラムを収集します。
- AUTO: 列のデータ配分とワークロードに基づいて、ヒストグラムを収集する列が判断されます。
- SKEWONLY: 列のデータ配分に基づいて、ヒストグラムを収集する列が判断されます。

デフォルトはFOR ALL COLUMNS SIZE AUTOです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。

degree

並列度。degreeのデフォルトはNULLです。SET_PARAMプロシージャを使用してデフォルト値を変更できます。NULLの場合、CREATE TABLE文またはALTER TABLE文のDEGREE句で指定された表のデフォルト値が使用されます。初期化パラメータに基づいてデフォルト値を指定するには、定数DBMS_STATS.DEFAULT_DEGREEを使用します。 値にAUTO_DEGREEを指定すると、並列度が自動的に決定されます。オブジェクトのサイズに応じて、1(シリアル実行)またはDEFAULT_DEGREE(CPU数と初期化パラメータに基づくシステム・デフォルト値)になります。

granularity

収集する統計情報の細分化(表がパーティション化されている場合にのみ該当します)。

ALL - すべての統計情報(サブパーティション、パーティションおよびグローバル)を収集します。

AUTO - パーティション化のタイプに基づいて細分化を決定します。これがデフォルト値です。

DEFAULT - グローバルおよびパーティション・レベルの統計情報を収集します。このオプションは廃止されます。現在でもサポートされていますが、このドキュメントでの記載は、レガシー・システムのためのものです。グローバルおよびパーティション・レベルの統計情報を収集するときは、GLOBAL AND PARTITIONを指定してください。現在のデフォルト値はAUTOなので、注意してください。

GLOBAL - グローバルな統計情報を収集します。

GLOBAL AND PARTITION - グローバルおよびパーティション・レベルの統計情報を収集します。サブパーティション・レベルの統計情報は、それがコンポジット・パーティション・オブジェクトである場合でも収集されます。

PARTITION - パーティション・レベルの統計情報を収集します。

SUBPARTITION - サブパーティション・レベルの統計情報を収集します。

cascade

表の索引について統計情報を収集します。索引統計情報の収集はパラレル化されません。このオプションを使用することは、表の各索引でGATHER_INDEX_STATSプロシージャを実行するのと同じです。索引の統計情報を収集するかどうかをOracleが決定できるようにするには、定数DBMS_STATS.AUTO_CASCADEを使用します。これがデフォルトです。デフォルト値を変更する場合は、SET_PARAMプロシージャを使用します。

stattab

現在の統計情報の保存場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

ロックされている場合でも、表の統計情報を収集します。


使用上の注意

分析する表に対するSELECT権限がユーザーにない場合、この操作はパラレル化しません。

例外

ORA-20000: 表が存在しないか、権限が不十分です。

ORA-20001: 入力値が無効です。


GENERATE_STATSプロシージャ

このプロシージャは、関連するオブジェクトで以前に収集した統計情報から、オブジェクトの統計情報を生成します。現在サポートされているオブジェクトは、Bツリー索引とビットマップ索引です。

構文

DBMS_STATS.GENERATE_STATS (
   ownname   VARCHAR2,
   objname   VARCHAR2,
   organized NUMBER DEFAULT 7);

パラメータ

表103-33 GENERATE_STATSプロシージャのパラメータ

パラメータ 説明

ownname

オブジェクトのスキーマ。

objname

オブジェクトの名前。

organized

索引とその基礎となる表の間で関連付けられた順位付けの量。複雑に編成されている索引には、ディスク上の連続行を参照する連続索引キーがその表(同じブロック)に対してあります。複雑に編成されていない索引には、ディスク上の異なる表ブロックを参照する連続キーがあります。

このパラメータは、Bツリー索引に対してのみ使用します。数値は、0から10の範囲で使用でき、0(ゼロ)は完全に編成された索引、10は完全に編成解除された索引を示します。


使用上の注意

完全に移入されたスキーマについては、より正確な統計情報が必要な場合は、GATHERプロシージャをかわりに使用する必要があります。

例外

ORA-20000: サポートされていないオブジェクト・タイプで、オブジェクトは存在しません。

ORA-20001: 無効なオプションまたは無効な統計情報です。


GET_COLUMN_STATSプロシージャ

このプロシージャは、列に関連するすべての情報を取得します。ユーザー定義の統計情報を処理するこのプロシージャのフォームでは、戻される統計情報のタイプは、ユーザー定義の統計情報に加え、格納されるタイプでもあります。

構文

DBMS_STATS.GET_COLUMN_STATS (
   ownname     VARCHAR2,
   tabname     VARCHAR2,
   colname     VARCHAR2,
   partname    VARCHAR2 DEFAULT NULL,
   stattab     VARCHAR2 DEFAULT NULL,
   statid      VARCHAR2 DEFAULT NULL,
   distcnt OUT NUMBER,
   density OUT NUMBER,
   nullcnt OUT NUMBER,
   srec    OUT StatRec,
   avgclen OUT NUMBER,
   statown     VARCHAR2 DEFAULT NULL);

ユーザー定義統計情報には、次の構文を使用します。

DBMS_STATS.GET_COLUMN_STATS (
   ownname          VARCHAR2,
   tabname          VARCHAR2,
   colname          VARCHAR2,
   partname         VARCHAR2 DEFAULT NULL,
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   ext_stats   OUT  RAW,
   stattypown  OUT  VARCHAR2 DEFAULT NULL,
   stattypname OUT  VARCHAR2 DEFAULT NULL,
   statown          VARCHAR2 DEFAULT NULL);

パラメータ

表103-34 GET_COLUMN_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

tabname

列が所属している表の名前。

colname

列の名前。

partname

統計情報を取得する表パーティションの名前。表がパーティション化されていて、partnameNULLの場合、統計情報はグローバルな表レベルで取り出されます。

stattab

統計情報を取り出す場所を示すユーザー統計表の識別子。stattabNULLの場合、統計情報はディクショナリから直接取り出されます。

statid

stattab内の統計情報を関連付ける識別子(オプション)(stattabNULLでない場合にのみ該当します)。

ext_stats

ユーザー定義の統計情報。

stattypown

統計タイプのスキーマ。

stattypname

統計タイプの名前。

distcnt

個別値の数。

density

列密度。

nullcnt

NULLの数。

srec

列最大、列最小およびヒストグラム値の内部表記を保持する構造。

avgclen

列の平均長(バイト単位)。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。


例外

ORA-20000: オブジェクトが存在しないか権限が不十分、または要求したオブジェクトの統計情報が格納されていません。


GET_INDEX_STATSプロシージャ

このプロシージャは、索引に関連するすべての情報を取得します。ユーザー定義の統計情報を処理するこのプロシージャのフォームでは、戻される統計情報のタイプは、ユーザー定義の統計情報に加え、格納されるタイプでもあります。

構文

DBMS_STATS.GET_INDEX_STATS (
   ownname        VARCHAR2,
   indname        VARCHAR2,
   partname       VARCHAR2 DEFAULT NULL,
   stattab        VARCHAR2 DEFAULT NULL,
   statid         VARCHAR2 DEFAULT NULL,
   numrows    OUT NUMBER,
   numlblks   OUT NUMBER,
   numdist    OUT NUMBER,
   avglblk    OUT NUMBER,
   avgdblk    OUT NUMBER,
   clstfct    OUT NUMBER,
   indlevel   OUT NUMBER,
   statown        VARCHAR2 DEFAULT NULL,
   cachedblk  OUT NUMBER,
   cachehit   OUT NUMBER);

DBMS_STATS.GET_INDEX_STATS (
   ownname        VARCHAR2,
   indname        VARCHAR2,
   partname       VARCHAR2 DEFAULT NULL,
   stattab        VARCHAR2 DEFAULT NULL,
   statid         VARCHAR2 DEFAULT NULL,
   numrows    OUT NUMBER,
   numlblks   OUT NUMBER,
   numdist    OUT NUMBER,
   avglblk    OUT NUMBER,
   avgdblk    OUT NUMBER,
   clstfct    OUT NUMBER,
   indlevel   OUT NUMBER,
   statown        VARCHAR2 DEFAULT NULL,
   guessq     OUT NUMBER,
   cachedblk  OUT NUMBER,
   cachehit   OUT NUMBER);

ユーザー定義統計情報には、次の構文を使用します。

DBMS_STATS.GET_INDEX_STATS (
   ownname          VARCHAR2,
   indname          VARCHAR2,
   partname         VARCHAR2 DEFAULT NULL,
   stattab          VARCHAR2 DEFAULT NULL,
   statid           VARCHAR2 DEFAULT NULL,
   ext_stats   OUT  RAW,
   stattypown  OUT  VARCHAR2 DEFAULT NULL,
   stattypname OUT  VARCHAR2 DEFAULT NULL,
   statown          VARCHAR2 DEFAULT NULL,
   cachedblk        OUT NUMBER,
   cachehit         OUT NUMBER);

パラメータ

表103-35 GET_INDEX_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

indname

索引の名前。

partname

統計情報を取得する索引パーティションの名前。索引がパーティション化されていて、partnameNULLの場合、統計情報はグローバルな索引レベルで取り出されます。

stattab

統計情報を取り出す場所を示すユーザー統計表の識別子。stattabNULLの場合、統計情報はディクショナリから直接取り出されます。

statid

stattab内の統計情報を関連付ける識別子(オプション)(stattabNULLでない場合にのみ該当します)。

ext_stats

ユーザー定義の統計情報。

stattypown

統計タイプのスキーマ。

stattypname

統計タイプの名前。

numrows

索引(パーティション)内の行数。

numlblks

索引(パーティション)内のリーフ・ブロックの数。

numdist

索引(パーティション)内の個別キーの数。

avglblk

この索引(パーティション)について各個別キーが出現するリーフ・ブロックの平均整数値。

avgdblk

この索引(パーティション)について個別キーが指す表内のデータ・ブロックの平均整数値。

clstfct

索引(パーティション)のクラスタ化要因。

indlevel

索引(パーティション)の高さ。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

guessq

索引の推測品質(パーティション)。

cachedblk

セグメント(索引/表/索引パーティション/表パーティション)に対するバッファ・キャッシュ内の平均ブロック数。

cachehit

セグメント(索引/表/索引パーティション/表パーティション)に対する平均キャッシュ・ヒット率。


使用上の注意

例外

ORA-20000: オブジェクトが存在しないか権限が不十分、または要求したオブジェクトの統計情報が格納されていません。


GET_PARAMファンクション

このファンクションは、DBMS_STATSプロシージャのパラメータのデフォルト値を戻します。

構文

DBMS_STATS.GET_PARAM (
   pname     IN   VARCHAR2)
 RETURN VARCHAR2;

パラメータ

表103-36 GET_PARAMファンクションのパラメータ

パラメータ 説明

pname

パラメータの名前。


例外

ORA-20001: 入力値が無効です


GET_STATS_HISTORY_AVAILABILITYファンクション

このファンクションは、統計履歴を使用できる最も古いタイムスタンプを戻します。ユーザーは、この値よりも古いタイムスタンプで統計情報をリストアできません。

構文

DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY
 RETURN TIMESTAMP WITH TIMEZONE;

GET_STATS_HISTORY_RETENTIONファンクション

このファンクションは、現在のリテンション値を戻します。

構文

DBMS_STATS.GET_STATS_HISTORY_RETENTION
 RETURN NUMBER;

GET_SYSTEM_STATSプロシージャ

このプロシージャは、stattabstattabNULLの場合はディクショナリ)からシステムの統計情報を取得します。

構文

DBMS_STATS.GET_SYSTEM_STATS (
   status    OUT  VARCHAR2,
   dstart    OUT  DATE,
   dstop     OUT  DATE,
   pname          VARCHAR2,
   pvalue    OUT  NUMBER,
   stattab   IN   VARCHAR2 DEFAULT NULL,
   statid    IN   VARCHAR2 DEFAULT NULL,
   statown   IN   VARCHAR2 DEFAULT NULL);

パラメータ

表103-37 GET_SYSTEM_STATSプロシージャのパラメータ

パラメータ 説明

status

出力は次のいずれかです。

  • COMPLETED:

  • AUTOGATHERING:

  • MANUALGATHERING:

  • BADSTATS:

dstart

統計情報の収集が開始された日付。

status = MANUALGATHERINGの場合、開始日が戻されます。

dstop

統計情報の収集が停止された日付。

  • status = COMPLETEの場合、終了日が戻されます。

  • status = AUTOGATHERINGの場合、将来の終了日が戻されます。

  • status = BADSTATSの場合、終了期限の日付が戻されます。

pname

取得するパラメータ名。次の値の1つが入ります。

  • iotfrspeed - I/O転送速度(ミリ秒当たりのバイト数単位)

  • ioseektim - シーク時間+待機時間+オペレーティング・システムのオーバーヘッド時間(ミリ秒単位)

  • sreadtim - シングル・ブロックの読込み(ランダム読込み)平均時間(ミリ秒単位)

  • mreadtim - mbrcブロックを1回に読み込む(順次読取り)平均時間(ミリ秒単位)

  • cpuspeed - 1秒当たりの平均CPUサイクル数(100万単位)であり、ワークロードの統計情報('INTERVAL'か、'START'と'STOP'の両方のオプションを使用して収集)に対して取得したもの

  • cpuspeednw - 1秒当たりの平均CPUサイクル数(100万単位)であり、noworkloadの統計情報('NOWORKLOAD'オプションを使用して収集)に対して取得したもの

  • mbrc - 順次読取りのマルチブロック読込み平均数(ブロック単位)

  • maxthr - 最大I/Oシステム・スループット(1秒当たりのバイト数単位)

  • slavethr - 平均スレーブI/Oスループット(1秒当たりのバイト数単位)

pvalue

取得するパラメータ値。

stattab

統計情報を取得するユーザー統計表の識別子。stattabがNULLの場合、統計情報はディクショナリから取得されます。

statid

stattabに保存された統計情報に関連付けられた、オプションの識別子。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20002: ユーザー統計表が不正です。アップグレードする必要があります。

ORA-20003: システムの統計情報を収集できません。

ORA-20004: パラメータが存在しません。


GET_TABLE_STATSプロシージャ

このプロシージャは、表に関連するすべての情報を取得します。

構文

DBMS_STATS.GET_TABLE_STATS (
   ownname         VARCHAR2,
   tabname         VARCHAR2,
   partname        VARCHAR2 DEFAULT NULL,
   stattab         VARCHAR2 DEFAULT NULL,
   statid          VARCHAR2 DEFAULT NULL,
   numrows     OUT NUMBER,
   numblks     OUT NUMBER,
   avgrlen     OUT NUMBER,
   statown         VARCHAR2 DEFAULT NULL,
   cachedblk   OUT NUMBER,
   cachehit    OUT NUMBER);

パラメータ

表103-38 GET_TABLE_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

tabname

列が所属している表の名前。

partname

統計情報を取得する表パーティションの名前。表がパーティション化されていて、partnameNULLの場合、統計情報はグローバルな表レベルで取り出されます。

stattab

統計情報を取り出す場所を示すユーザー統計表の識別子。stattabNULLの場合、統計情報はディクショナリから直接取り出されます。

statid

stattab内の統計情報を関連付ける識別子(オプション)(stattabNULLでない場合にのみ該当します)。

numrows

表(パーティション)内の行数。

numblks

表(パーティション)が占有するブロックの数。

avgrlen

表(パーティション)の行の平均長。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

cachedblk


cachehit



使用上の注意

例外

ORA-20000: オブジェクトが存在しないか権限が不十分、または要求したオブジェクトの統計情報が格納されていません。


IMPORT_COLUMN_STATSプロシージャ

このプロシージャは、stattabで識別されるユーザー統計表から特定の列に関する統計情報を取り出し、ディクショナリに格納します。

構文

DBMS_STATS.IMPORT_COLUMN_STATS (
   ownname       VARCHAR2,
   tabname       VARCHAR2,
   colname       VARCHAR2,
   partname      VARCHAR2 DEFAULT NULL,
   stattab       VARCHAR2,
   statid        VARCHAR2 DEFAULT NULL,
   statown       VARCHAR2 DEFAULT NULL,
   no_invalidate BOOLEAN DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')),
   force         BOOLEAN DEFAULT FALSE);

パラメータ

表103-39 IMPORT_COLUMN_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

tabname

列が所属している表の名前。

colname

列の名前。

partname

表のパーティションの名前。表がパーティション化されていて、partnameNULLの場合、グローバルでパーティション化された列統計情報がインポートされます。

stattab

統計情報を取り出す場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

TRUEに設定されている場合、統計情報は、ロックされていてもインポートされます。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: ユーザー統計表の値が無効または矛盾しています。

ORA-20005: オブジェクト統計はロックされています


IMPORT_DATABASE_STATSプロシージャ

このプロシージャは、データベース内のすべてのオブジェクトに関する統計情報をユーザー統計表から取り出し、ディクショナリに格納します。

構文

DBMS_STATS.IMPORT_DATABASE_STATS (
   stattab       VARCHAR2,
   statid        VARCHAR2 DEFAULT NULL,
   statown       VARCHAR2 DEFAULT NULL,
   no_invalidate BOOLEAN DEFAULT to_no_invalidate_type(
                                    get_param('NO_INVALIDATE')),
   force         BOOLEAN DEFAULT FALSE);

パラメータ

表103-40 IMPORT_DATABASE_STATSプロシージャのパラメータ

パラメータ 説明

stattab

統計情報を取り出す場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

オブジェクト(表)のレベルでロックされている統計情報を上書きします。

  • TRUE: 統計情報のロックを無視して統計情報をインポートします。

  • FALSE: 統計情報は、ロックされていない場合のみインポートされます。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: ユーザー統計表の値が無効または矛盾しています。


IMPORT_DICTIONARY_STATSプロシージャ

このプロシージャは、すべてのディクショナリのスキーマ('SYS'、'SYSTEM'およびRDBMSコンポーネントのスキーマ)に関する統計情報をユーザー統計表から取り出し、ディクショナリに格納します。

構文

DBMS_STATS.IMPORT_DICTIONARY_STATS (
   stattab       VARCHAR2,
   statid        VARCHAR2 DEFAULT NULL,
   statown       VARCHAR2 DEFAULT NULL,
   no_invalidate BOOLEAN DEFAULT to_no_invalidate_type(
                                    get_param('NO_INVALIDATE')),
   force         BOOLEAN DEFAULT FALSE);

パラメータ

表103-41 IMPORT_DICTIONARY_STATSプロシージャのパラメータ

パラメータ 説明

stattab

統計情報を取り出す場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

オブジェクト(表)のレベルで統計情報のロックを無視します。

  • TRUE: 統計情報のロックを無視して統計情報をインポートします。

  • FALSE: 統計情報は、ロックされていない場合のみインポートされます。


使用上の注意

このプロシージャを実行するには、SYSDBA、またはANALYZE ANY DICTIONARYANALYZE ANYの両方のシステム権限が必要です。

例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: ユーザー統計表の値が無効または矛盾しています。

ORA-20002: ユーザー統計表が不正です。アップグレードする必要があります。


IMPORT_FIXED_OBJECTS_STATSプロシージャ

このプロシージャは、固定表に関する統計情報をユーザー統計表から取り出し、ディクショナリに格納します。

構文

DBMS_STATS.IMPORT_FIXED_OBJECTS_STATS (
   stattab       VARCHAR2,
   statid        VARCHAR2 DEFAULT NULL,
   statown       VARCHAR2 DEFAULT NULL,
   no_invalidate BOOLEAN DEFAULT to_no_invalidate_type(
                                    get_param('NO_INVALIDATE')),
   force         BOOLEAN DEFAULT FALSE);

パラメータ

表103-42 IMPORT_FIXED_OBJECTS_STATSプロシージャのパラメータ

パラメータ 説明

stattab

統計情報を取り出す場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

統計情報のロックを無視します。

  • TRUE: 統計情報のロックを無視して統計情報をインポートします。

  • FALSE: 統計情報は、ロックされていない場合のみインポートされます。


使用上の注意

このプロシージャを実行するには、SYSDBAまたはANALYZE ANY DICTIONARYシステム権限が必要です。

例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: ユーザー統計表の値が無効または矛盾しています。

ORA-20002: ユーザー統計表が不正です。アップグレードする必要があります。


IMPORT_INDEX_STATSプロシージャ

このプロシージャは、stattabで識別されるユーザー統計表から特定の索引に関する統計情報を取り出し、ディクショナリに格納します。

構文

DBMS_STATS.IMPORT_INDEX_STATS (
   ownname       VARCHAR2,
   indname       VARCHAR2,
   partname      VARCHAR2 DEFAULT NULL,
   stattab       VARCHAR2,
   statid        VARCHAR2 DEFAULT NULL,
   statown       VARCHAR2 DEFAULT NULL,
   no_invalidate BOOLEAN DEFAULT to_no_invalidate_type(
                                    get_param('NO_INVALIDATE')),
   force         BOOLEAN DEFAULT FALSE);

パラメータ

表103-43 IMPORT_INDEX_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

indname

索引の名前。

partname

索引パーティション名。索引がパーティション化されていて、partnameNULLの場合、グローバルでパーティション化された索引統計情報がインポートされます。

stattab

統計情報を取り出す場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

索引の統計情報がロックされていても、統計情報をインポートします。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: ユーザー統計表の値が無効または矛盾しています。

ORA-20005: オブジェクト統計はロックされています


IMPORT_SCHEMA_STATSプロシージャ

このプロシージャは、ownnameで識別されるスキーマ内のすべてのオブジェクトに関する統計情報をユーザー統計表から取り出し、ディクショナリに格納します。

構文

DBMS_STATS.IMPORT_SCHEMA_STATS (
   ownname       VARCHAR2,
   stattab       VARCHAR2,
   statid        VARCHAR2 DEFAULT NULL,
   statown       VARCHAR2 DEFAULT NULL,
   no_invalidate BOOLEAN DEFAULTto_no_invalidate_type(
                                    get_param('NO_INVALIDATE')),
   force         BOOLEAN DEFAULT FALSE);

パラメータ

表103-44 IMPORT_SCHEMA_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

stattab

統計情報を取り出す場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

オブジェクト(表)のレベルでロックされている統計情報を上書きします。

  • TRUE: 統計情報のロックを無視して統計情報をインポートします。

  • FALSE: 統計情報は、ロックされていない場合のみインポートされます。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: ユーザー統計表の値が無効または矛盾しています。


IMPORT_SYSTEM_STATSプロシージャ

このプロシージャは、stattabで識別されるユーザー統計表からシステムの統計情報を取り出し、ディクショナリに格納します。

構文

DBMS_STATS.IMPORT_SYSTEM_STATS (
   stattab       VARCHAR2,
   statid        VARCHAR2 DEFAULT NULL,
   statown       VARCHAR2 DEFAULT NULL);

パラメータ

表103-45 IMPORT_SYSTEM_STATSプロシージャのパラメータ

パラメータ 説明

stattab

統計情報を取り出すユーザー統計表の識別子。

statid

stattabから取り出された統計情報に関連付けられた、オプションの識別子。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: ユーザー統計表の値が無効または矛盾しています。

ORA-20002: ユーザー統計表が不正です。アップグレードする必要があります。

ORA-20003: システムの統計情報をエクスポートできません。


IMPORT_TABLE_STATSプロシージャ

このプロシージャは、stattabで識別されるユーザー統計表から特定の表に関する統計情報を取り出し、ディクショナリに格納します。cascadeを使用すると、指定した表に関連付けられている索引および列統計情報もすべてインポートされます。

構文

DBMS_STATS.IMPORT_TABLE_STATS (
   ownname       VARCHAR2,
   tabname       VARCHAR2,
   partname      VARCHAR2 DEFAULT NULL,
   stattab       VARCHAR2,
   statid        VARCHAR2 DEFAULT NULL,
   cascade       BOOLEAN  DEFAULT TRUE,
   statown       VARCHAR2 DEFAULT NULL,
   no_invalidate BOOLEAN DEFAULT to_no_invalidate_type(
                                    get_param('NO_INVALIDATE')),
   force         BOOLEAN DEFAULT FALSE);

パラメータ

表103-46 IMPORT_TABLE_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

tabname

表の名前。

partname

表パーティション名。表がパーティション化されていて、partnameNULLの場合、グローバルでパーティション表統計情報がインポートされます。

stattab

統計情報を取り出す場所を示すユーザー統計表の識別子。

statid

stattab内の統計情報を関連付ける識別子(オプション)。

cascade

TRUEの場合は、この表の列と索引の統計情報もまたインポートされます。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

表の統計情報がロックされていても、統計情報をインポートします。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: ユーザー統計表の値が無効または矛盾しています。


LOCK_SCHEMA_STATSプロシージャ

このプロシージャは、スキーマのすべての表の統計情報をロックします。

構文

DBMS_STATS.LOCK_SCHEMA_STATS (
   ownname    VARCHAR2);

パラメータ

表103-47 LOCK_SCHEMA_STATSプロシージャのパラメータ

パラメータ 説明

ownname

ロックするスキーマの名前。


使用上の注意

詳細は、「LOCK_TABLE_STATSプロシージャ」の「使用上の注意」を参照してください。


LOCK_TABLE_STATSプロシージャ

このプロシージャは、表の統計情報をロックします。

構文

DBMS_STATS.LOCK_TABLE_STATS (
   ownname    VARCHAR2,
   tabname    VARCHAR2);

パラメータ

表103-48 LOCK_TABLE_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

tabname

表の名前。


使用上の注意


PREPARE_COLUMN_VALUESプロシージャ

このプロシージャは、ユーザー指定の最小値、最大値およびヒストグラム終点のデータ型固有の値を、SET_COLUMN_STATSを使用して将来格納するためにOracleの内部表記に変換します。

構文

DBMS_STATS.PREPARE_COLUMN_VALUES (
   srec     IN OUT StatRec,
   charvals        CHARARRAY);

DBMS_STATS.PREPARE_COLUMN_VALUES (
   srec      IN OUT StatRec,
   datevals         DATEARRAY);

DBMS_STATS.PREPARE_COLUMN_VALUES (
   srec     IN OUT StatRec,
   dblvals         DBLARRAY);

DBMS_STATS.PREPARE_COLUMN_VALUES (
   srec     IN OUT StatRec,
   fltvals         FLTARRAY);

DBMS_STATS.PREPARE_COLUMN_VALUES (
   srec     IN OUT StatRec,
   numvals         NUMARRAY);

DBMS_STATS.PREPARE_COLUMN_VALUES (
   srec     IN OUT StatRec,
   rawvals         RAWARRAY);

プラグマ

pragma restrict_references(prepare_column_values, WNDS, RNDS, WNPS, RNPS);
pragma restrict_references(prepare_column_values_nvarchar, WNDS, RNDS, WNPS, RNPS);
pragma restrict_references(prepare_column_values_rowid, WNDS, RNDS, WNPS, RNPS);

パラメータ

表103-49 PREPARE_COLUMN_VALUESプロシージャのパラメータ

パラメータ 説明

srec.epc

charvalsdatevalsdblvalsfltvalsnumvalsまたはrawvalsで指定される値の数。この値は2から256の範囲で指定し、ヒストグラム情報を認めないプロシージャ(nvarcharrowid)では2を設定する必要があります。

最初に対応する配列のエントリは列の最小値を含み、最後のエントリは最大値を含みます。2つを超えるエントリがある場合、その他のエントリは、残りの高さ調整ヒストグラムまたは頻度ヒストグラムのエンドポイント値(小さい値から大きい値に順序立てられた中間値を持つ)を含みます。この値は圧縮のために調整できるため、戻り値は、SET_COLUMN_STATSへのコールに対して現状のままになります。

srec.bkvals

頻度分布が必要な場合、この配列には、charvalsdatevalsdblvalsfltvalsnumvalsまたはrawvalsで指定されている各個別値の発生回数が含まれています。そうでない場合、この配列は単なる出力パラメータであり、このプロシージャのコール時にはNULLが設定されている必要があります。


表103-50に、データ型固有の入力パラメータ(1つを使用)を示します。

表103-50 データ型固有の入力パラメータ

タイプ 説明

charvals

列の型が文字ベースの場合の値の配列。各文字列の最初の32バイトまでが使用されます。配列のエントリ数は、2から256の範囲内である必要があります。データ型が固定のCHARである場合、適切な正規化を行うには、文字列にスペースを追加して15文字にする必要があります。

datevals

列の型が日付ベースの場合の値の配列。

dblvals

列の型がdoubleベースの場合の値の配列。

fltvals

列の型がfloatベースの場合の値の配列。

numvals

列の型が数値ベースの場合の値の配列。

rawvals

列の型がRAWの場合の値の配列。各文字列の最初の32バイトまでが使用されます。

nvmin、nvmax

列の型が各国語キャラクタ・セット・ベースの場合の最大値と最小値。この型の列について、ヒストグラム情報は提供できません。データ型が固定のCHARである場合、適切な正規化を行うには、文字列にスペースを追加して15文字にする必要があります。

rwmin、rwmax

列タイプがROWIDの場合の最大値と最小値。このタイプの列に、ヒストグラム情報は提供されません。


出力パラメータ

表103-51 PREPARE_COLUMN_VALUESプロシージャのパラメータ

パラメータ 説明

srec.minval

SET_COLUMN_STATSへのコールでの使用に適した最小値の内部表記。

srec.maxval

SET_COLUMN_STATSへのコールでの使用に適した最大値の内部表記。

srec.bkvals

SET_COLUMN_STATSへのコールでの使用に適した配列。

srec.novals

SET_COLUMN_STATSへのコールでの使用に適した配列。


例外

ORA-20001: 入力値が無効または矛盾しています。


PREPARE_COLUMN_VALUES_NVARCHAR2プロシージャ

このプロシージャは、ユーザー指定の最小値、最大値およびヒストグラム終点のデータ型固有の値を、SET_COLUMN_STATSを使用して将来格納するためにOracleの内部表記に変換します。

構文

DBMS_STATS.PREPARE_COLUMN_VALUES_NVARCHAR2 (
   srec     IN OUT StatRec,
   nvmin           NVARCHAR2,
   nvmax           NVARCHAR2);

プラグマ

pragma restrict_references(prepare_column_values_nvarchar, WNDS, RNDS, WNPS, RNPS);

パラメータ

表103-52 PREPARE_COLUMN_VALUES_NVARCHAR2プロシージャのパラメータ

パラメータ 説明

srec.epc

charvalsdatevalsdblvalsfltvalsnumvalsまたはrawvalsで指定される値の数。この値は2から256の範囲で指定し、ヒストグラム情報を認めないプロシージャ(nvarcharrowid)では2を設定する必要があります。

最初に対応する配列のエントリは列の最小値を含み、最後のエントリは最大値を含みます。2つを超えるエントリがある場合、その他のエントリは、残りの高さ調整ヒストグラムまたは頻度ヒストグラムのエンドポイント値(小さい値から大きい値に順序立てられた中間値を持つ)を含みます。この値は圧縮のために調整できるため、戻り値は、SET_COLUMN_STATSへのコールに対して現状のままになります。

srec.bkvals

頻度分布が必要な場合、この配列には、charvalsdatevalsdblvalsfltvalsnumvalsまたはrawvalsで指定されている各個別値の発生回数が含まれています。そうでない場合、この配列は単なる出力パラメータであり、このプロシージャのコール時にはNULLが設定されている必要があります。


表103-53に、データ型固有の入力パラメータ(1つを使用)を示します。

表103-53 データ型固有の入力パラメータ

説明

nvmin、nvmax

列の型が各国語キャラクタ・セット・ベースの場合の最大値と最小値。この型の列について、ヒストグラム情報は提供できません。データ型が固定のCHARである場合、適切な正規化を行うには、文字列にスペースを追加して15文字にする必要があります。


出力パラメータ

表103-54 PREPARE_COLUMN_VALUES_NVARCHAR2プロシージャのパラメータ

パラメータ 説明

srec.minval

SET_COLUMN_STATSへのコールでの使用に適した最小値の内部表記。

srec.maxval

SET_COLUMN_STATSへのコールでの使用に適した最大値の内部表記。

srec.bkvals

SET_COLUMN_STATSへのコールでの使用に適した配列。

srec.novals

SET_COLUMN_STATSへのコールでの使用に適した配列。


例外

ORA-20001: 入力値が無効または矛盾しています。


PREPARE_COLUMN_VALUES_ROWIDプロシージャ

このプロシージャは、ユーザー指定の最小値、最大値およびヒストグラム終点のデータ型固有の値を、SET_COLUMN_STATSを使用して将来格納するためにOracleの内部表記に変換します。

構文

DBMS_STATS.PREPARE_COLUMN_VALUES_ROWID (
   srec  IN OUT StatRec,
   rwmin        ROWID,
   rwmax        ROWID);

プラグマ

pragma restrict_references(prepare_column_values_rowid, WNDS, RNDS, WNPS, RNPS);

パラメータ

表103-55 PREPARE_COLUMN_VALUES_ROWIDプロシージャのパラメータ

パラメータ 説明

srec.epc

charvalsdatevalsdblvalsfltvalsnumvalsまたはrawvalsで指定される値の数。この値は2から256の範囲で指定し、ヒストグラム情報を認めないプロシージャ(nvarcharrowid)では2を設定する必要があります。

最初に対応する配列のエントリは列の最小値を含み、最後のエントリは最大値を含みます。2つを超えるエントリがある場合、その他のエントリは、残りの高さ調整ヒストグラムまたは頻度ヒストグラムのエンドポイント値(小さい値から大きい値に順序立てられた中間値を持つ)を含みます。この値は圧縮のために調整できるため、戻り値は、SET_COLUMN_STATSへのコールに対して現状のままになります。

srec.bkvals

頻度分布が必要な場合、この配列には、charvalsdatevalsdblvalsfltvalsnumvalsまたはrawvalsで指定されている各個別値の発生回数が含まれています。そうでない場合、この配列は単なる出力パラメータであり、このプロシージャのコール時にはNULLが設定されている必要があります。


表103-56に、データ型固有の入力パラメータ(1つを使用)を示します。

表103-56 データ型固有の入力パラメータ

タイプ 説明

rwmin、rwmax

列タイプがROWIDの場合の最大値と最小値。このタイプの列に、ヒストグラム情報は提供されません。


出力パラメータ

表103-57 PREPARE_COLUMN_VALUES_ROWIDプロシージャの出力パラメータ

パラメータ 説明

srec.minval

SET_COLUMN_STATSへのコールでの使用に適した最小値の内部表記。

srec.maxval

SET_COLUMN_STATSへのコールでの使用に適した最大値の内部表記。

srec.bkvals

SET_COLUMN_STATSへのコールでの使用に適した配列。

srec.novals

SET_COLUMN_STATSへのコールでの使用に適した配列。


例外

ORA-20001: 入力値が無効または矛盾しています。


PURGE_STATSプロシージャ

このプロシージャは、ディクショナリに保存されている統計情報の古いバージョンをパージします。このプロシージャを実行するには、SYSDBA、またはANALYZE ANY DICTIONARYANALYZE ANYの両方のシステム権限が必要です。

構文

DBMS_STATS.PURGE_STATS(
    before_timestamp       TIMESTAMP WITH TIME ZONE);

パラメータ

表103-58 PURGE_STATSプロシージャのパラメータ

パラメータ 説明

before_timestamp

このタイムスタンプがパージされる前に保存された統計情報のバージョン。NULLの場合、自動パージによるパージ・ポリシーを使用します。自動パージでは、(現在の時間 - 統計履歴のリテンション値)と(システムでの最近の分析時間 - 1)のうちで古いほうの時間を基準として、それよりも古いすべての履歴を削除します。この統計履歴のリテンション値は、ALTER_STATS_HISTORY_RETENTIONプロシージャを使用して変更できます。デフォルトは31日です。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: 値が無効または矛盾しています。


RESET_PARAM_DEFAULTSプロシージャ

このプロシージャは、すべてのパラメータのデフォルト値をOracleの推奨値にリセットします。

構文

DBMS_STATS.RESET_PARAM_DEFAULTS;

RESTORE_DATABASE_STATSプロシージャ

このプロシージャは、データベース内のすべての表の統計情報を、指定したタイムスタンプ(as_of_timestamp)でリストアします。

構文

DBMS_STATS.RESTORE_DATABSE_STATS(
   as_of_timestamp        TIMESTAMP WITH TIME ZONE,
   force                  BOOLEAN DEFAULT FALSE,
   no_invalidate          BOOLEAN DEFAULT to_no_invalidate_type
                                                    (GET_PARAM('NO_INVALIDATE')));

パラメータ

表103-59 RESTORE_DATABASE_STATSプロシージャのパラメータ

パラメータ 説明

as_of_timestamp

統計情報をリストアするタイムスタンプ。

force

統計情報は、ロックされていてもリストアされます。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: 値が無効または矛盾しています。

ORA-20006: 統計情報をリストアできません。統計履歴を使用できません。


RESTORE_DICTIONARY_STATSプロシージャ

このプロシージャは、すべてのディクショナリ表('SYS'、'SYSTEM'およびRDBMSコンポーネントのスキーマ)の統計情報を、指定したタイムスタンプ(as_of_timestamp)でリストアします。

構文

DBMS_STATS.RESTORE_DICTIONARY_STATS(
   as_of_timestamp        TIMESTAMP WITH TIME ZONE,
   force                  BOOLEAN DEFAULT FALSE,
   no_invalidate          BOOLEAN DEFAULT to_no_invalidate_type
                                                    (GET_PARAM('NO_INVALIDATE')));

パラメータ

表103-60 RESTORE_DICTIONARY_STATSプロシージャのパラメータ

パラメータ 説明

as_of_timestamp

統計情報をリストアするタイムスタンプ。

force

統計情報は、ロックされていてもリストアされます。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。


使用上の注意

このプロシージャを実行するには、SYSDBA、またはANALYZE ANY DICTIONARYANALYZE ANYの両方のシステム権限が必要です。

例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: 値が無効または矛盾しています。

ORA-20006: 統計情報をリストアできません。統計履歴を使用できません。


RESTORE_FIXED_OBJECTS_STATSプロシージャ

このプロシージャは、すべての固定表の統計情報を、指定したタイムスタンプ(as_of_timestamp)でリストアします。

構文

DBMS_STATS.RESTORE_FIXED_OBJECTS_STATS(
   as_of_timestamp        TIMESTAMP WITH TIME ZONE,
   force                  BOOLEAN DEFAULT FALSE,
   no_invalidate          BOOLEAN DEFAULT to_no_invalidate_type
                                                    (GET_PARAM('NO_INVALIDATE')));

パラメータ

表103-61 RESTORE_FIXED_OBJECTS_STATSプロシージャのパラメータ

パラメータ 説明

as_of_timestamp

統計情報をリストアするタイムスタンプ。

force

統計情報は、ロックされていてもリストアされます。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。


使用上の注意

このプロシージャを実行するには、SYSDBAまたはANALYZE ANY DICTIONARYシステム権限が必要です。

例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: 値が無効または矛盾しています。

ORA-20006: 統計情報をリストアできません。統計履歴を使用できません。


RESTORE_SCHEMA_STATSプロシージャ

このプロシージャは、スキーマ内のすべての表の統計情報を、指定したタイムスタンプ(as_of_timestamp)でリストアします。

構文

DBMS_STATS.RESTORE_SCHEMA_STATS(
   ownname                VARCHAR2,
   as_of_timestamp        TIMESTAMP WITH TIME ZONE,
   force                  BOOLEAN DEFAULT FALSE,
   no_invalidate          BOOLEAN DEFAULT to_no_invalidate_type
                                                    (GET_PARAM('NO_INVALIDATE')));

パラメータ

表103-62 RESTORE_SCHEMA_STATSプロシージャのパラメータ

パラメータ 説明

ownname

統計情報をリストアする表のスキーマ。

as_of_timestamp

統計情報をリストアするタイムスタンプ。

force

統計情報は、ロックされていてもリストアされます。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: 値が無効または矛盾しています。

ORA-20006: 統計情報をリストアできません。統計履歴を使用できません。


RESTORE_SYSTEM_STATSプロシージャ

このプロシージャは、システムの統計情報を、指定したタイムスタンプ(as_of_timestamp)でリストアします。

構文

DBMS_STATS.RESTORE_SCHEMA_STATS(
   as_of_timestamp        TIMESTAMP WITH TIME ZONE);

パラメータ

表103-63 RESTORE_SYSTEM_STATSプロシージャのパラメータ

パラメータ 説明

as_of_timestamp

統計情報をリストアするタイムスタンプ。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: 値が無効または矛盾しています。

ORA-20006: 統計情報をリストアできません。統計履歴を使用できません。


RESTORE_TABLE_STATSプロシージャ

このプロシージャは、表の統計情報を、指定したタイムスタンプ(as_of_timestamp)でリストアします。このプロシージャは、索引および列に関連付けられた統計情報もリストアします。指定したタイムスタンプでの表の統計情報がロックされている場合、プロシージャはその統計情報をロックします。プロシージャは、ユーザー定義の統計情報をリストアしません。

構文

DBMS_STATS.RESTORE_TABLE_STATS (
   ownname                   VARCHAR2,
   tabname                   VARCHAR2,
   as_of_timestamp           TIMESTAMP WITH TIME ZONE,
   restore_cluster_index     BOOLEAN DEFAULT FALSE,
   force                     BOOLEAN DEFAULT FALSE,
   no_invalidate             BOOLEAN DEFAULT to_no_invalidate_type
                                                    (GET_PARAM('NO_INVALIDATE')));

パラメータ

表103-64 RESTORE_TABLE_STATSプロシージャのパラメータ

パラメータ 説明

ownname

統計情報をリストアする表のスキーマ。

tabname

表の名前。

as_of_timestamp

統計情報をリストアするタイムスタンプ。

restore_cluster_index

表がクラスタの一部であるときに、このパラメータがTRUEに設定されている場合は、クラスタ索引の統計情報をリストアします。

force

統計情報は、表の統計情報がロックされていてもリストアされます。指定したタイムスタンプでの表の統計情報がロックされていない場合は、その統計情報をロック解除します。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: 値が無効または矛盾しています。

ORA-20006: 統計情報をリストアできません。統計履歴を使用できません。


SET_COLUMN_STATSプロシージャ

このプロシージャは、列に関連する情報を設定します。ユーザー定義の統計情報を処理するこのバージョンでは、指定の統計タイプは、実際のユーザー定義の統計情報に加え、ディクショナリに格納されるタイプでもあります。この統計タイプがNULLの場合は、索引または列に関連付けられている統計タイプが格納されます。

構文

DBMS_STATS.SET_COLUMN_STATS (
   ownname       VARCHAR2,
   tabname       VARCHAR2,
   colname       VARCHAR2,
   partname      VARCHAR2 DEFAULT NULL,
   stattab       VARCHAR2 DEFAULT NULL,
   statid        VARCHAR2 DEFAULT NULL,
   distcnt       NUMBER DEFAULT NULL,
   density       NUMBER DEFAULT NULL,
   nullcnt       NUMBER DEFAULT NULL,
   srec          StatRec DEFAULT NULL,
   avgclen       NUMBER DEFAULT NULL,
   flags         NUMBER DEFAULT NULL,
   statown       VARCHAR2 DEFAULT NULL,
   no_invalidate BOOLEAN DEFAULT to_no_invalidate_type(
                                    get_param('NO_INVALIDATE')),
   force         BOOLEAN DEFAULT FALSE);

ユーザー定義統計情報には、次の構文を使用します。

DBMS_STATS.SET_COLUMN_STATS (
   ownname       VARCHAR2,
   tabname       VARCHAR2,
   colname       VARCHAR2,
   partname      VARCHAR2 DEFAULT NULL,
   stattab       VARCHAR2 DEFAULT NULL,
   statid        VARCHAR2 DEFAULT NULL,
   ext_stats     RAW,
   stattypown    VARCHAR2 DEFAULT NULL,
   stattypname   VARCHAR2 DEFAULT NULL,
   statown       VARCHAR2 DEFAULT NULL,
   no_invalidate BOOLEAN DEFAULT to_no_invalidate_type(
                                    get_param('NO_INVALIDATE')),
   force         BOOLEAN DEFAULT FALSE);

パラメータ

表103-65 SET_COLUMN_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

tabname

列が所属している表の名前。

colname

列の名前。

partname

統計情報を格納する表パーティションの名前。表がパーティション化されていて、partnameNULLの場合、統計情報はグローバルな表レベルで格納されます。

stattab

統計情報の格納場所を示すユーザー統計表の識別子。stattabNULLの場合、統計情報はディクショナリ内に直接格納されます。

statid

stattab内の統計情報を関連付ける識別子(オプション)(stattabNULLでない場合にのみ該当します)。

ext_stats

ユーザー定義の統計情報。

stattypown

統計タイプのスキーマ。

stattypname

統計タイプの名前。

distcnt

個別値の数。

density

列密度。この値がNULLで、distcntNULLでない場合、密度はdistcntから導出されます。

nullcnt

NULLの数。

srec

PREPARE_COLUMN_VALUESまたはGET_COLUMN_STATSへのコールで入力されたStatRec構造。

avgclen

列の平均長(バイト単位)。

flags

Oracle内部で使用(NULLのままにします)。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

force

列の統計情報がロックされている場合でも、この値を設定します。


例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: 入力値が無効または矛盾しています。

ORA-20005: オブジェクト統計はロックされています


SET_INDEX_STATSプロシージャ

このプロシージャは、索引に関連する情報を設定します。ユーザー定義の統計情報を処理するこのバージョンでは、指定の統計タイプは、実際のユーザー定義の統計情報に加え、ディクショナリに格納されるタイプでもあります。この統計タイプがNULLの場合は、索引または列に関連付けられている統計タイプが格納されます。

構文

DBMS_STATS.SET_INDEX_STATS (
   ownname       VARCHAR2,
   indname       VARCHAR2,
   partname      VARCHAR2  DEFAULT NULL,
   stattab       VARCHAR2  DEFAULT NULL,
   statid        VARCHAR2  DEFAULT NULL,
   numrows       NUMBER    DEFAULT NULL,
   numlblks      NUMBER    DEFAULT NULL,
   numdist       NUMBER    DEFAULT NULL,
   avglblk       NUMBER    DEFAULT NULL,
   avgdblk       NUMBER    DEFAULT NULL,
   clstfct       NUMBER    DEFAULT NULL,
   indlevel      NUMBER    DEFAULT NULL,
   flags         NUMBER    DEFAULT NULL,
   statown       VARCHAR2  DEFAULT NULL,
   no_invalidate BOOLEAN   DEFAULT to_no_invalidate_type(
                                    get_param('NO_INVALIDATE')),
   guessq        NUMBER    DEFAULT NULL,
   cachedblk     NUMBER    DEFAULT NULL,
   cachehit      NUMBER    DEFUALT NULL,
   force         BOOLEAN   DEFAULT FALSE);

ユーザー定義統計情報には、次の構文を使用します。

DBMS_STATS.SET_INDEX_STATS (
   ownname       VARCHAR2,
   indname       VARCHAR2,
   partname      VARCHAR2  DEFAULT NULL,
   stattab       VARCHAR2  DEFAULT NULL,
   statid        VARCHAR2  DEFAULT NULL,
   ext_stats     RAW,
   stattypown    VARCHAR2 DEFAULT NULL,
   stattypname   VARCHAR2 DEFAULT NULL,
   statown       VARCHAR2 DEFAULT NULL,
   no_invalidate BOOLEAN DEFAULT to_no_invalidate_type(
                                    get_param('NO_INVALIDATE')),
   cachedblk     NUMBER    DEFAULT NULL,
   cachehit      NUMBER    DEFUALT NULL,
   force         BOOLEAN   DEFAULT FALSE);

パラメータ

表103-66 SET_INDEX_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

indname

索引の名前。

partname

統計情報を格納する索引パーティションの名前。索引がパーティション化されていて、partnameNULLの場合、統計情報はグローバルな索引レベルで格納されます。

stattab

統計情報の格納場所を示すユーザー統計表の識別子。stattabNULLの場合、統計情報はディクショナリ内に直接格納されます。

statid

stattab内の統計情報を関連付ける識別子(オプション)(stattabNULLでない場合にのみ該当します)。

ext_stats

ユーザー定義の統計情報。

stattypown

統計タイプのスキーマ。

stattypname

統計タイプの名前。

numrows

索引(パーティション)内の行数。

numlblks

索引(パーティション)内のリーフ・ブロックの数。

numdist

索引(パーティション)内の個別キーの数。

avglblk

この索引(パーティション)について各個別キーが出現するリーフ・ブロックの平均整数値。この値が提供されない場合、この値はnumlblksnumdistから導出されます。

avgdblk

この索引(パーティション)について個別キーが指す表内のデータ・ブロックの平均整数値。この値が提供されない場合、この値はclstfctnumdistから導出されます。

clstfct

all_indexesビューのclustering_factor列の説明を参照してください。

indlevel

索引(パーティション)の高さ。

flags

Oracle内部で使用(NULLのままにします)。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

guessq

推測品質。all_indexesビューのpct_direct_access列の説明を参照してください。

cachedblk

セグメント(索引/表/索引パーティション/表パーティション)に対するバッファ・キャッシュ内の平均ブロック数。

cachehit

セグメント(索引/表/索引パーティション/表パーティション)に対する平均キャッシュ・ヒット率。

force

索引の統計情報がロックされている場合でも、この値を設定します。


使用上の注意

例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: 入力値が無効です

ORA-20005: オブジェクト統計はロックされています


SET_PARAMプロシージャ

このプロシージャは、DBMS_STATSプロシージャのパラメータのデフォルト値を設定します。GET_PARAMファンクションを使用して、パラメータの現在のデフォルト値を取得できます。

構文

DBMS_STATS.SET_PARAM (
   pname      IN    VARCHAR2,
   pval       IN    VARCHAR2);

パラメータ

表103-67 SET_PARAMプロシージャのパラメータ

パラメータ 説明

pname

パラメータ名。次のパラメータのデフォルト値を設定できます。

  • CASCADE: SET_PARAMで設定したCASCADEのデフォルト値は、プロシージャのエクスポート/インポートでは使用しません。収集プロシージャのみが使用します。

  • DEGREE

  • ESTIMATE_PERCENT

  • METHOD_OPT

  • NO_INVALIDATE

  • GRANULARITY

  • AUTOSTATS_TARGET: このパラメータは、自動統計情報収集にのみ適用されます。このパラメータの値は、統計情報収集に必要なオブジェクトを制御します(「pval」を参照)。

pval

パラメータ値。NULLが指定されている場合は、Oracle指定のデフォルト値が設定されます。pnameAUTOSTATS_TARGETの場合、有効な値は次のとおりです。

  • ALL: システム内のすべてのオブジェクトに関する統計情報を収集します。

  • ORACLE: Oracle所有のすべてのオブジェクトに関する統計情報を収集します。

  • AUTO: 統計情報を収集するオブジェクトをOracleが指定します。


使用上の注意

例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: 入力値が無効です。

DBMS_STATS.SET_PARAM('CASCADE','DBMS_STATS.AUTO_CASCADE');
DBMS_STATS.SET_PARAM('ESTIMATE_PERCENT','5');
DBMS_STATS.SET_PARAM('DEGREE','NULL');

SET_SYSTEM_STATSプロシージャ

このプロシージャは、システムの統計情報を設定します。

構文

DBMS_STATS.SET_SYSTEM_STATS (
   pname          VARCHAR2,
   pvalue         NUMBER,
   stattab   IN   VARCHAR2 DEFAULT NULL,
   statid    IN   VARCHAR2 DEFAULT NULL,
   statown   IN   VARCHAR2 DEFAULT NULL);

パラメータ

表103-68 SET_SYSTEM_STATSプロシージャのパラメータ

パラメータ 説明

pname

取得するパラメータ名。次の値の1つが入ります。

  • iotfrspeed - I/O転送速度(ミリ秒当たりのバイト数単位)

  • ioseektim - シーク時間+待機時間+オペレーティング・システムのオーバーヘッド時間(ミリ秒単位)

  • sreadtim - シングル・ブロックの読込み(ランダム読込み)平均時間(ミリ秒単位)

  • mreadtim - mbrcブロックを1回に読み込む(順次読取り)平均時間(ミリ秒単位)

  • cpuspeed - 1秒当たりの平均CPUサイクル数(100万単位)であり、ワークロードの統計情報('INTERVAL'か、'START'と'STOP'の両方のオプションを使用して収集)に対して取得したもの

  • cpuspeednw - 1秒当たりの平均CPUサイクル数(100万単位)であり、noworkloadの統計情報('NOWORKLOAD'オプションを使用して収集)に対して取得したもの

  • mbrc - 順次読取りのマルチブロック読込み平均数(ブロック単位)

  • maxthr - 最大I/Oシステム・スループット(1秒当たりのバイト数単位)

  • slavethr - 平均スレーブI/Oスループット(1秒当たりのバイト数単位)

pvalue

取得するパラメータ値。

stattab

統計情報を取得するユーザー統計表の識別子。stattabがNULLの場合、統計情報はディクショナリから取得されます。

statid

stattabに保存された統計情報に関連付けられた、オプションの識別子。

statown

stattabを含んだスキーマ(現在のスキーマと異なる場合)。

cachedblk

セグメント(索引/表/索引パーティション/表パーティション)に対するバッファ・キャッシュ内の平均ブロック数。

cachehit

セグメント(索引/表/索引パーティション/表パーティション)に対する平均キャッシュ・ヒット率。


使用上の注意

例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: 入力値が無効です

ORA-20002: ユーザー統計表が不正です。アップグレードする必要があります。

ORA-20003: システムの統計情報を設定できません。

ORA-20004: パラメータが存在しません。


SET_TABLE_STATSプロシージャ

このプロシージャは、表に関連する情報を設定します。

構文

DBMS_STATS.SET_TABLE_STATS (
   ownname       VARCHAR2,
   tabname       VARCHAR2,
   partname      VARCHAR2 DEFAULT NULL,
   stattab       VARCHAR2 DEFAULT NULL,
   statid        VARCHAR2 DEFAULT NULL,
   numrows       NUMBER   DEFAULT NULL,
   numblks       NUMBER   DEFAULT NULL,
   avgrlen       NUMBER   DEFAULT NULL,
   flags         NUMBER   DEFAULT NULL,
   statown       VARCHAR2 DEFAULT NULL,
   no_invalidate BOOLEAN  DEFAULT to_no_invalidate_type (
                                     get_param('NO_INVALIDATE')),
   cachedblk     NUMBER    DEFAULT NULL,
   cachehit      NUMBER    DEFUALT NULL,
   force         BOOLEAN   DEFAULT FALSE);

パラメータ

表103-69 SET_TABLE_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

tabname

表の名前。

partname

統計情報を格納する表パーティションの名前。表がパーティション化されていて、partnameNULLの場合、統計情報はグローバルな表レベルで格納されます。

stattab

統計情報の格納場所を示すユーザー統計表の識別子。stattabNULLの場合、統計情報はディクショナリ内に直接格納されます。

statid

stattab内の統計情報を関連付ける識別子(オプション)(stattabNULLでない場合にのみ該当します)。

numrows

表(パーティション)内の行数。

numblks

表(パーティション)が占有するブロックの数。

avgrlen

表(パーティション)の行の平均長。

flags

Oracle内部で使用(NULLのままにします)。

statown

stattabを含んだスキーマ(ownnameと異なる場合)。

no_invalidate

TRUEに設定されている場合は、依存カーソルを無効化しません。FALSEに設定されている場合は、すぐに依存カーソルを無効化します。依存カーソルの無効化の時機をOracleが決定できるようにするには、DBMS_STATS.AUTO_INVALIDATEを使用します。これがデフォルトです。デフォルトを変更する場合は、SET_PARAMプロシージャを使用します。

cachedblk

セグメント(索引/表/索引パーティション/表パーティション)に対するバッファ・キャッシュ内の平均ブロック数。

cachehit

セグメント(索引/表/索引パーティション/表パーティション)に対する平均キャッシュ・ヒット率。

force

表の統計情報がロックされている場合でも、この値を設定します。


使用上の注意

例外

ORA-20000: オブジェクトが存在しないか、権限が不十分です。

ORA-20001: 入力値が無効です

ORA-20005: オブジェクト統計はロックされています


UNLOCK_SCHEMA_STATSプロシージャ

このプロシージャは、スキーマ内のすべての表の統計情報をロック解除します。

構文

DBMS_STATS.UNLOCK_SCHEMA_STATS (
   ownname    VARCHAR2);

パラメータ

表103-70 UNLOCK_SCHEMA_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。


使用上の注意


UNLOCK_TABLE_STATSプロシージャ

このプロシージャは、表の統計情報をロック解除します。

構文

DBMS_STATS.UNLOCK_TABLE_STATS (
   ownname    VARCHAR2,
   tabname    VARCHAR2);

パラメータ

表103-71 UNLOCK_TABLE_STATSプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

tabname

表の名前。


使用上の注意


UPGRADE_STAT_TABLEプロシージャ

このプロシージャは、古いバージョンのユーザー統計表をアップグレードします。

構文

DBMS_STATS.UPGRADE_STAT_TABLE (
   ownname    VARCHAR2,
   stattab    VARCHAR2);

パラメータ

表103-72 UPGRADE_STAT_TABLEプロシージャのパラメータ

パラメータ 説明

ownname

スキーマの名前。

stattab

表の名前。


例外

ORA-20000: 表をアップグレードできません。