行の消去に関する指針 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/rgu1556127906220.ditamap
dita:ditavalPath
ja-JP/rgu1556127906220.ditaval
dita:id
B035-1093
Product Category
Software
Teradata Vantage

次のテーブルに、行の消去で使用する最適なユーティリティを選択する際に参考にできる指針を示します。実験を通してより良い方法を見出せることを覚えておいてください。

タスク 最初の選択 2番目の選択
任意のテーブルから少ない行数を消去する TPump BTEQ
大きなテーブルから多い行数を消去する MultiLoad BTEQ
複数のテーブルの多い行数に対してDELETE操作を実行する MultiLoad TPump
任意のテーブルから行をすべて消去する BTEQ

この場合、Teradataは、テーブルが空であることを示す標識を使用してテーブル ヘッダーにマークを付けます。この削除操作の要求時にテーブルがロックされていなければ、この削除操作は1~2秒で終了します。

 
任意のテーブルから数行を消去する BTEQ領域が許せば、空のテーブルを作成し、保持する行をこのテーブルに挿入し、オリジナルのテーブルを削除した後、この新規テーブルの名前をオリジナルのテーブルの名前に変更することができます。 MultiLoad削除操作は、(全データではなく)大量のデータをテーブルから削除するのに適しています。

MultiLoadは、ブロックごとにデータを読み取ります。MLoadは、テーブルで使用されている各ブロックを処理、つまり必要に応じて行を消去しブロックを置き換えます。

この操作は非常に効率的です。またロールバック ロギングがないため、多くの場合、SQLによる消去操作より効率的です。ただし、MultiLoad処理が正常に終了しなかった場合、テーブルは不安定な状態に陥ります。このMultiLoadの効果を最も発揮させるには、セカンダリ インデックスを削除し、MultiLoad操作を実行した後、インデックスを置換します。この結果、処理が高速になり、作業テーブルが確実に小さくなります。

SQL MERGE文を使ってテーブルから行を消去することはできません。