ユーザー用のスプール領域の割り振りを管理すれば、領域利用と不具合の可能性のある(つまり最適化されていない)問合わせを制御する手段とすることができます。
スプール領域と永久領域
スプール領域は、ユーザーに割り振られます。1つのログオンのもとで複数のユーザーが活動中に、1つの問合わせが実行されてスプール領域の割り当て制限を超えると、スプールを必要とする、そのユーザーのアクティブな問合わせはすべて、追加のスプールを拒否されて、異常終了することになります。
領域を問題とする場合、永久領域が不足するよりは、スプール領域が不足するほうがましです。ユーザーが追加の永久領域を要求するのは、テーブルを変更する(例えば挿入や更新など)問合わせを実行するためです。追加スプールのリクエストは、ほぼ常に、SELECTをサポートするために出されます。SELECTは、ロールバックの対象ではありません。
この構成については、<Teradata Vantage™ - データベース ユーティリティ、B035-1102>の「永続データ用に保存されるシリンダ数」を参照してください。
スプール領域のアカウント処理
- Update Spaceユーティリティを実行する場合、またはUpdate Spaceユーティリティと同じ関数を実行するSQLストアド プロシージャFixCurrentSpaceを実行する場合については、FixCurrentSpaceプロシージャを参照してください。
- SQLストアド プロシージャFixAllocatedSpaceSpaceを実行して、DBC.DatabaseSpaceテーブルのAMPレベルの領域の割り当てとDBC.GlobalDBSpaceテーブルのグローバルレベルの領域の割り当ての間の不整合を修正する場合については、FixAllocatedSpaceプロシージャを参照してください。
更新領域またはFixCurrentSpaceを実行すると、DBC.DatabaseSpaceのスプール領域値に実際のスプール使用状況が反映されます。
ファントム スプールは、ディスク上にスプールが存在しなくてもDBC.DatabaseSpaceテーブルにはスプールの存在が示されているような場合に発生します。ファントム スプールは、「余剰スプール」とは異なります。余剰スプールは、リクエストが実行を完了してもスプールが実際に作成され、ディスク上に存在する場合に発生します。
仕掛けとしてのスプール領域の使用
スプール領域を小さくすることは、リソース集中型問合わせを捕捉するための方策の1つになります。リソース集中型問合わせは、ユーザーに大量のスプール領域が割り振られている場合、いつまでも完了しなかったり、システム全体の空き領域を使い果たしてしまう問合わせです。
システム性能という点では、すべてのユーザーに対して大きいスプール領域制限を割り振らず、スプール領域制限の設定を全般的に控えめにします。