データベース内の各オブジェクトで使用される固定領域、一時領域、スプール領域、および持続スプール領域をカウントします。グローバルに領域を割り当てるデータベースの場合、AMP全体の割り当ては固定されます。AMPが領域を超えると、このプロシージャは割り当てを適切に解除します。
このプロシージャを使用すると、まれな種類のシステム障害が原因で発生する可能性のあるファントム スプールの問題またはDBC.DATABASESPACEテーブル内の不整合を修正できます。
構文
CALL [SYSLIB.] FixCurrentSpace ( 'FixSpaceOption', 'AllDatabases', 'AllProxyUsers', 'FixDatabaseName', FixedDatabaseCount Errinfo ) [;]
構文要素
FixCurrentSpaceには次の構文要素を使用します。
構文要素 | 説明 |
---|---|
SYSLIB | 関数が格納されているデータベースの名前。 |
FixSpaceOption | 更新する現在の領域の種類。次のいずれかのオプションを指定します。
|
AllDatabases | すべてのデータベースの現在の領域を更新します。次のいずれかの値を指定します。
|
AllProxyUsers | すべてのプロキシ ユーザーの現在の領域を更新します。次のいずれかの値を指定します。
|
FixDatabaseName | ターゲット データベース名。AllDatabasesおよびAllProxyUsersが指定されていない場合(NまたはNULLの値が指定されている場合)は必須です。AllDatabasesまたはAllProxyUsersのいずれかの値がYの場合、FixDatabaseNameにはNULLを指定する必要があります。 |
FixedDatabaseCount | 現在の領域が修正されたデータベースの出力数。 |
ErrInfo | 固定領域の操作が成功した場合はNULLです。それ以外の場合は、操作の完了前にプロシージャを停止させたエラーに関する情報が表示されます。 |
許可
このストアド プロシージャまたはSYSLIBデータベースに対するEXECUTE権限が必要です。
引数のタイプ
このプロシージャに渡された式は、次のデータ型を持っている必要があります。
- FixSpaceOption= CHAR(2) CHARACTER SET LATIN
- AllDatabases= CHAR(1) CHARACTER SET LATIN
- AllProxyUsers= CHAR(1) CHARACTER SET LATIN
- FixDatabaseName= VARCHAR(128) CHARACTER SET UNICODE
使用上の注意
FixCurrentSpaceは、UpdateSpaceユーティリティと同じ領域フィールドの関数を実行します。このプロシージャは現在の領域の使用状況を計算し、未使用の領域の割り当てを解除するため、時間がかかることがあります。UpdateSpaceユーティリティと異なり、UpdateSpaceは、作業を実行するための個別の専用タスクを持つAMPワーカー タスクを使用します。このため、システムのワークロードが大きい場合は、FixCurrentSpaceプロシージャの代わりに、UpdateSpaceユーティリティを使用してみてください。
例
次の例では、すべてのデータベースの現在の領域フィールドすべてを更新するためにプロシージャを実行する方法について示します。
call SYSLIB.FixCurrentSpace('A', 'Y', 'N', null, cnt, err);