UNLOCK_SCHEMA_STATS プロシージャは、ユーザーが所有するすべてのテーブルの統計情報のロックを解除します。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみ提供しています。
構文
DBMS_STATS.UNLOCK_SCHEMA_STATS (
ownname VARCHAR2,
stattype VARCHAR2 DEFAULT 'ALL');
パラメータ説明
パラメータ |
説明 |
|---|---|
| ownname | ユーザー名。ユーザー名を NULL に設定した場合、デフォルトで現在ログインしているユーザー名が使用されます。 |
| stattype | ロックのタイプ。一般的には以下の3種類のロックタイプがあります:
'ALL' タイプのみをサポートしています。 |
使用方法
このプロシージャを呼び出すには、テーブルの所有者でなければなりません。
SYSが所有するオブジェクトについては、テーブルの所有者またはSYSDBA権限が必要です。テーブルの統計情報がロックされると、そのテーブルに依存するすべての統計情報もロックされます。これには、テーブルレベルの統計情報、列レベルの統計情報、ヒストグラム統計情報、およびインデックスに依存するすべての統計情報が含まれます。
オブジェクトの統計情報がロックされている場合、
SET_*、DELETE_*、IMPORT_*、GATHER_*プロシージャを実行して単一のテーブル、インデックス、または列の統計情報を変更しようとするとエラーが発生します。UNLOCK_SCHEMA_STATSプロシージャとUNLOCK_TABLE_STATSプロシージャは、対応するパーティションの統計情報をロック解除することはできません。LOCK_TABLE_STATSプロシージャを呼び出すと、テーブルレベルでロックポジションが設定されます。そのため、パーティションやインデックスなどの依存オブジェクトに関する統計情報を収集することはできません。また、テーブル統計情報がロックされている場合、依存関係もロックされるため、パーティション統計情報をロック解除するためにLOCK_PARTITION_STATSプロシージャを明示的に呼び出す必要はありません。
例
hr が所有するすべてのテーブルの統計情報のロックを解除します。
obclient [SYS]> CREATE USER hr IDENTIFIED BY 123456;
Query OK, 0 rows affected
obclient [SYS]> CALL DBMS_STATS.UNLOCK_SCHEMA_STATS ('hr', stattype=>'ALL');
Query OK, 0 rows affected