FixCurrentSpaceプロシージャ - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データベースの管理

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/rgu1556127906220.ditamap
dita:ditavalPath
ja-JP/rgu1556127906220.ditaval
dita:id
B035-1093
Product Category
Software
Teradata Vantage

目的

データベース内の各オブジェクトで使用される固定領域、一時領域、スプール領域、および持続スプール領域をカウントします。グローバルに領域を割り当てるデータベースの場合、AMP全体の割り当ては固定されます。AMPが領域を超えると、このプロシージャは割り当てを適切に解除します。

このプロシージャを使用すると、まれな種類のシステム障害が原因で発生する可能性のあるファントム スプールの問題またはDBC.DATABASESPACEテーブル内の不整合を修正できます。

構文

CALL [SYSLIB.] FixCurrentSpace (
  'FixSpaceOption',
  'AllDatabases',
  'AllProxyUsers',
  'FixDatabaseName',
  FixedDatabaseCount
  Errinfo
) [;]

構文要素

FixCurrentSpaceには次の構文要素を使用します。
構文要素 説明
SYSLIB 関数が格納されているデータベースの名前。
FixSpaceOption
更新する現在の領域の種類。次のいずれかのオプションを指定します。
  • P(永久)
  • T(一時)
  • S(スプール)
  • PS(持続スプール)
  • A(すべてのオプション)
NULLにすることはできません。
AllDatabases すべてのデータベースの現在の領域を更新します。次のいずれかの値を指定します。
  • Y
  • N
  • NULL
AllProxyUsers すべてのプロキシ ユーザーの現在の領域を更新します。次のいずれかの値を指定します。
  • Y
  • N
  • NULL
固定領域を操作できるのは、プロファイルを割り当てられたプロキシ ユーザーのみです。
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);