スプール領域の管理 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/upb1600054424724.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1093
Product Category
Software
Teradata Vantage

ユーザー用のスプール領域の割り振りを管理すれば、領域利用と不具合の可能性のある(つまり最適化されていない)問合わせを制御する手段とすることができます。

スプール領域と永久領域

スプール領域は、ユーザーに割り振られます。1つのログオンのもとで複数のユーザーが活動中に、1つの問合わせが実行されてスプール領域の割り当て制限を超えると、スプールを必要とする、そのユーザーのアクティブな問合わせはすべて、追加のスプールを拒否されて、異常終了することになります。

領域を問題とする場合、永久領域が不足するよりは、スプール領域が不足するほうがましです。ユーザーが追加の永久領域を要求するのは、テーブルを変更する(例えば挿入や更新など)問合わせを実行するためです。追加スプールのリクエストは、ほぼ常に、SELECTをサポートするために出されます。SELECTは、ロールバックの対象ではありません。

この構成については、<Teradata Vantage™ - データベース ユーティリティ、B035-1102>の「永続データ用に保存されるシリンダ数」を参照してください。

スプール領域のアカウント処理

ユーザーのスプール領域は、DatabaseSpaceテーブルで更新されます。ただし、ファントム スプールの可能性を考慮し、ログオフしたユーザーのスプール領域を消去するために次の方法のいずれかを実行する必要があります。
  • Update Spaceユーティリティを実行する場合、またはUpdate Spaceユーティリティと同じ関数を実行するSQLストアド プロシージャFixCurrentSpaceを実行する場合については、FixCurrentSpaceプロシージャを参照してください。
  • SQLストアド プロシージャFixAllocatedSpaceSpaceを実行して、DBC.DatabaseSpaceテーブルのAMPレベルの領域の割り当てとDBC.GlobalDBSpaceテーブルのグローバルレベルの領域の割り当ての間の不整合を修正する場合については、FixAllocatedSpaceプロシージャを参照してください。

更新領域またはFixCurrentSpaceを実行すると、DBC.DatabaseSpaceのスプール領域値に実際のスプール使用状況が反映されます。

ファントム スプールは、ディスク上にスプールが存在しなくてもDBC.DatabaseSpaceテーブルにはスプールの存在が示されているような場合に発生します。ファントム スプールは、「余剰スプール」とは異なります。余剰スプールは、リクエストが実行を完了してもスプールが実際に作成され、ディスク上に存在する場合に発生します。

仕掛けとしてのスプール領域の使用

スプール領域を小さくすることは、リソース集中型問合わせを捕捉するための方策の1つになります。リソース集中型問合わせは、ユーザーに大量のスプール領域が割り振られている場合、いつまでも完了しなかったり、システム全体の空き領域を使い果たしてしまう問合わせです。

システム性能という点では、すべてのユーザーに対して大きいスプール領域制限を割り振らず、スプール領域制限の設定を全般的に控えめにします。

リクエストがAMP全体でスキューされる可能性がある場合、データベースおよびユーザーのスプールのスキュー係数を定義してみてください。ただし、スキューがゼロ以外の場合、システムはスプール制限をグローバルに管理するために多くのバックグラウンド作業を実行する必要があります。システムの性能を維持するには、スプール領域のスキューを制限してください。スキュー係数とグローバルな領域アカウント処理の詳細については、グローバル領域のアカウント処理についてを参照してください。