UNLOCK_SCHEMA_STATS プロシージャは、Schema 内のすべてのテーブルの統計情報をアンロックします。
構文
DBMS_STATS.UNLOCK_SCHEMA_STATS (
ownname VARCHAR2,
stattype VARCHAR2 DEFAULT 'ALL');
パラメータの説明
| パラメータ | 説明 |
|---|---|
| ownname | Schema の名前。 |
| stattype | ロックのタイプ。一般的には以下の3種類のロックタイプが含まれます。
|
使用方法
このプロシージャを呼び出すには、テーブルの所有者である必要があります。
SYSが所有するオブジェクトの場合、テーブルの所有者であるか、SYSDBA権限を持っている必要があります。テーブルの統計情報がロックされている場合、そのテーブルに依存するすべての統計情報、すなわちテーブルレベルの統計情報、列レベルの統計情報、ヒストグラム統計情報、およびすべての依存インデックスの統計情報がロックされます。
オブジェクトの統計情報がロックされている場合、
SET_*、DELETE_*、IMPORT_*、GATHER_*プロシージャを実行して、単一のテーブル、インデックス、または列の統計情報を変更しようとするとエラーが発生します。UNLOCK_SCHEMA_STATSプロシージャとUNLOCK_TABLE_STATSプロシージャは、いずれも対応するパーティションの統計情報をアンロックすることはできません。LOCK_TABLE_STATSプロシージャを呼び出すと、テーブルレベルでロック位置が設定されます。この場合、パーティションやインデックスなどの依存オブジェクトの統計情報を収集することはできません。また、テーブルの統計情報がロックされている場合、依存オブジェクトも自動的にロックされるため、パーティションの統計情報をロックするには、LOCK_PARTITION_STATSプロシージャを明示的に呼び出す必要はありません。
例
hr スキーマ内のすべてのテーブルの統計情報をアンロックします。
obclient [test]> USE hr;
obclient [hr]> CALL DBMS_STATS.UNLOCK_SCHEMA_STATS ('hr', stattype=>'ALL');