17.00 - 17.05 - 空き領域の管理 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Release Date
2020年6月
Content Type
管理
Publication ID
B035-1093-170K-JPN
Language
日本語 (日本)

空き領域割合の要件の評価

予約された空き領域によって、テーブルは現在割り当てられているシリンダ内で拡張できます。これにより、さらにシリンダを割り当てる必要性と、それによって生じるデータを新規シリンダに移行するオーバーヘッドを回避、または後に回すことができます。シリンダの新たな割り当てを回避することでシステム全体のパフォーマンスが向上します。

テーブルのFSP値を正しく選択するには、パフォーマンスと領域を配慮する必要があり、テーブルの成長性にも左右されます。
  • 変更や拡大が生じない参照テーブルの場合、FSPは不要のため、これらのテーブルではFSPをゼロにすることができます。システムが基本的に前述タイプのテーブルである場合、FreeSpacePercentをゼロに設定し、CREATE TABLEおよびALTER TABLEのSQL文でFREESPACEオプションを使用して、成長が予想されるテーブルに別のFSPを設定します。
  • 大幅な成長が予想されるテーブルは、成長度合いの低いテーブルよりもFSP値を高くする必要があります。ただし、FSP値を増やすとストレージを多く消費するため、領域とパフォーマンスのバランスを踏まえてFSPを選択する必要があります。

FSPが0%で100シリンダのストレージを必要とするテーブルでFSPが25%に設定された場合、134シリンダが必要となります。FSPが75%の場合、同じテーブルで400シリンダが必要です。FSPによるストレージのオーバーヘッド分を満たすために必要なシリンダを使用可能にすると、パフォーマンスに影響が出ます。

時間経過にともない、FreeSpacePercent設定を受け入れないようテーブルが変更されたことで、利用可能な空き領域が変化する可能性があります。バックグラウンド タスクのAutoCylPackが、テーブルのFSPを定期的に確認、復元します。Ferret PACKDISKコマンドを手動で実行して、強制的にFSPを復元、またはテーブルのFSPを別の値に一時的に設定できます。MiniCylPackは、システム上のシリンダが不足している場合、利用可能な空き領域を変更する場合があります。

FreeSpacePercentの影響

FreeSpacePercent(FSP)はシステム全体に関係するパラメータです。CREATEまたはALTER TABLEリクエストを使って各テーブルに指定した値が、FSPによってオーバーライドされることはありません。

MiniCylPack操作は、CREATE TABLEおよびALTER TABLE文で指定されているFSPを順守しようとします。そのテーブルに固有なFSPが指定されていない場合は、システム デフォルトのFSPになります。MiniCylPackがこれらの値を順守しながら領域を再利用できない場合は、領域が再利用できるようになるまで、値を低くして(より小さなFSP)使用しようとします。これが終了するのは、MiniCylPackがすべてのシリンダについてFSP値0を試行したときです。

永続ディスク ストレージ領域の20 %以上が使用可能であっても、場合によってはVantageが空きシリンダを使い切ってしまうことがあります。その原因は以下のとおりです。

  • FSPの設定値が必要以上に設定されているため、システムによって不要な領域が割り当てられる。
  • FSPの設定値が必要以下に設定されているため、システムによって新規のシリンダが余分に割り当てられる。
  • シリンダが細分化されているため、大きなテーブルのストレージ密度(使用率)が低下している。

FSPを順守する操作

テーブルへの行の追加時に、ファイル システムは選択に応じて、使用可能なストレージ シリンダを100 %使用するか、またはFSPを順守します。以下の操作ではFSPが順守されます。

  • FastLoad
  • 空きテーブルに対するMultiLoad
  • 復元
  • テーブル再作成
  • フォールバックを追加するSQL
  • SIを作成するSQL

FSP無視の操作

以下の操作ではFSPは無視されます。

  • SQLの挿入と更新
  • Tpump
  • テーブルにデータを取り込むためのMultiLoadを使った挿入と更新

データが密に詰め込まれているシステムでFSPを適用または再適用する場合は、以下を行なうことができます。

  • 最大のテーブルに対して、ALTER TABLE文にIMMEDIATE句を指定します。
  • 最大テーブルを除去してから、FastLoadを実行します。
  • 最大テーブルをDUMPしてから、そのテーブルをRESTOREします。
  • Ferretで、SCOPEをTABLEに設定し、PACKDISK FSP = xxxxに設定します。

どの場合にも、テーブルの再作成にはFSP値を順守するユーティリティが使用され、有効化されているFSPに合わせてシリンダにデータが挿入されます。これらのオプションを使えるのは、処理を完了するだけの時間枠がある場合だけです。以下の指針を参考にしてください。

  • 読み取り専用データの場合は、空き領域なしでパッキングします(0 %)。
  • INSERT(挿入)の場合は次のようにします。
    • データの増大パーセンテージを概算してFSPを決めます。スキュー用に5 %を追加します。
    • 最初のデータ増大が完了すると、FSPには効力がなくなります。
    • DROP/FASTLOAD、DUMP/RESTORE、またはPACKDISK操作を使ってFSPを再適用します。
    • 様々なFSP値を使って試してみてから、ノードまたはドライブを追加してください。