web-dev-qa-db-ja.com

データベースにスプール領域がなくなりました

Teradataを使用しています。そのため、「データベースにスプール領域がなくなりました」と表示されます。データベースの使用率は85%です。このエラーとDB使用率の間には何らかの関係がありますか?これに関するどんな研究も、私がこれを解決するのにより役立つでしょう。これを回避するためのアイデアを教えてください。

11
user1601052

Spool space問題は、非効率的なクエリがある場合、または使用しているテーブルでstatisticsが適切に収集されていない場合に発生します。また、プライマリインデックスが適切に選択されていない(高いスキュー)テーブルでも発生する可能性があります。スプールは、Teradata環境への接続に使用しているユーザーアカウントの属性です。実際にはデータベース自体の属性ではありません。

確実に知る唯一の方法は、クエリのEXPLAINプランを調べることです。

クエリが効率的でない場合は、書き直してください。統計を収集する必要がある場合、またはインデックスを変更する必要がある場合は、使用しているテーブルを担当するDBAに連絡してください。

「スプール外」エラーを引き起こしている特定のクエリがある場合は、クエリの完全なテキストでこの質問を更新してください。

8
BellevueBob

上記の方法で「スプール不足」エラーを解決できませんでした。結合または無関係な列なしで、ランク関数を独自の小さなテーブルに移動することで、エラーを解決しました。

1
JT Lehman

大きなデータを持つテーブルを使用すると、スプール領域が発生する可能性があります。複数のテーブルを使用している場合は、テーブル全体を参照するのではなく、エイリアス名を使用しているかどうかを確認してください。エイリアス名を使用すると、実際には結合によってデータが絞り込まれます。また、より多くのデータを消費するoreplaceなどの関数が使用されているかどうかも確認してください。その場合は正規表現を使用してみてください。