17.00 - 17.05 - 識別列へのバルク挿入の最適化 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Release Date
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-170K-JPN
Language
日本語 (日本)

識別列を持つテーブルへのバルクINSERT操作のパフォーマンスは、IdColバッチ サイズ パラメータのDBS制御設定によって異なります(DBS制御の詳細については、<Teradata Vantage™ - データベース ユーティリティ、B035-1102>を参照)。バルク挿入のパフォーマンスについては、システム再始動によって生じる可能性のある識別列番号のギャップをどれほど許容できるかを考慮しながら、この変数で最適化を図る必要があります。大きいバッチ サイズを指定すると、ロード用の識別列番号を予約するためのDBC.IdColの更新が少なくなるかまったく存在しなくなるため、パフォーマンスが向上します。

大きなIdColバッチ サイズ値を設定すると、バルク挿入のパフォーマンスが向上しますが、システムの再始動が行なわれる場合に、より多くの識別列番号が失われることにもなります。予約された識別列番号は、メモリ常駐です。Teradata Databaseを再始動する必要がある場合、バッチ挿入トランザクションはロールバックされ、予約されたそれらの識別列番号は永久に失なわれます。

ご使用のシステムの最適なバッチ サイズは、AMPの数に比例します。100,000行というIdColバッチ サイズのデフォルト値は、ほとんどのワークロードでは十分ですが、使用するアプリケーションおよびシステム構成で最善に機能する行数を判別するために独自のテストを実行する必要があります。

Teradataモード セッションで識別列テーブルに行をバルク挿入するとき、SELECTが明示的なトランザクションの境界内で実行される場合は、DBC.IdColテーブルにデッドロックを作成する危険があるため、DBC.IdColに対するSELECT操作のデフォルト ロック強度をACCESSからREADまたはそれより高い強度にアップグレードしないでください。