17.10 - IMMEDIATE DATABLOCKSIZE - 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
日本語 (日本)

テーブルのデータ ブロック サイズの変更は、パフォーマンスを改善する目的でのみ行ないます。大きい表のデータ ブロックのリパックは、時間のかかる処理です。そのため、IMMEDIATEオプションを大きいテーブルに指定すると、ALTER TABLEリクエストの実行に必要な時間が大幅に増えます。

システムのフィールド アップグレードをしても、ブロック分割が発生しない限りデータ ブロック サイズは64 KBから127.5 KBに変更されることはありません。127.5 KBのブロック サイズに伴うパフォーマンス向上の利点をすぐに享受するためには、データ ブロック サイズの変更を直接的に強制施行する必要があります。

データ ブロック サイズを63.5 KBから127.5 KBにアップグレードするには、すべてのデータベースのすべてのテーブルに対して、次のALTER TABLEリクエストのいずれかを実行します。

    ALTER TABLE database_name.table_name, DEFAULT DATABLOCKSIZE
                IMMEDIATE;

    ALTER TABLE database_name.table_name, DATABLOCKSIZE = 127.5 KBYTES
                IMMEDIATE;

IMMEDIATEキーワードを指定しないと、DATABLOCKSIZEの定義は127.5 KBに設定されますが、新しく定義されたテーブルに行が挿入されるまでサイズは大きくなりません。

IMMEDIATEオプション付きのリクエストを処理するには余分の時間を要するため、データ ブロック サイズの変換はピーク時以外に行なうよう計画する必要があります。

また、IMMEDIATEオプションを指定したALTER TABLEリクエストがアボートした場合、またはユーザーによってアボートされた場合には、リパックが不完全なまま終了する可能性があります。つまり、元のサイズのままのデータ ブロックと、新たに指定されたサイズのデータ ブロックとが混在することになります。

SHOW TABLEリクエストへの応答として返されたDATABLOCKSIZEの値は、最後に入力されたALTER TABLEまたはCREATE TABLEリクエストに指定された値になります。

DATABLOCKSIZE指定がALTER TABLEリクエストで指定されていない場合には、データ ブロック サイズは変更されず、データ ブロックはリパックされません。