17.10 - 行パーティション プライマリ インデックスを持つテーブルに対するハッシュ インデックスの作成 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-171K-JPN
Language
日本語 (日本)
ハッシュ インデックスに対してパーティション プライマリ インデックスを作成することはできませんが、場合によっては、行パーティション プライマリ インデックスを持つテーブルにハッシュ インデックスを作成できます。行パーティションPIが定義されたテーブルにハッシュ インデックスを作成するためのルールは、以下のとおりです:
  • 行パーティションPIテーブルにハッシュ インデックスを定義するには、明示的な列リストを含むORDER BY句を指定することも必要です。
  • 列リストには、BLOB、CLOB、PERIOD、または地理空間列を含めることはできません。
  • テーブルのパーティションがPERIOD境界関数に定義されている場合は、行パーティションPIテーブルにハッシュ インデックスを定義することはできません。

    たとえば、BEGIN境界関数に基づいたパーティション式を使用して、次の行パーティションPIテーブルを作成したとします。

         CREATE TABLE hash_idx_ppi (
           i  INTEGER
           j  INTEGER,
           vt PERIOD(DATE))
         PARTITION BY (CASE_N(BEGIN(vt) < DATE,
                       NO CASE));

    その後、hash_idx_ppiに次のようなハッシュ インデックスを作成しようとしたとします。

         CREATE HASH INDEX hx(i)
         ON hash_idx_ppi
         ORDER BY VALUES(i);

    PERIOD列に対してインデックスを作成できないことを示すエラーがリクエスト元に返されます。

  • ハッシュ インデックスを持つ行パーティションPIテーブルにクエリーを実行して3710エラーが発生した場合は、MaxParseTreeSegs DBS制御フラグを更新して行パーティションPIテーブルへのどのようなリクエストも処理できる値にすると、最適化ルーチンが使用できるメモリ量を増やすことができます。
    行パーティションPIテーブルで問題が発生する 推奨される処理
    ハッシュ インデックスまたは結合インデックスなし MaxParseTreeSegsの値を次の値に変更します。
    • 2000(バイト パック形式システム)
    • 4000(バイト整合形式システム)
    ハッシュ インデックスまたは結合インデックスあり Teradataサポートに連絡してください。

    場合によっては、これらの値をさらに増分する必要があるなど、クエリーのワークロードがあるかもしれません。

    MaxParseTreeSegs DBS制御フィールドの設定変更については、<Teradata Vantage™ - データベース ユーティリティ、B035-1102>を参照してください。