2016-08-10 12 views
0

誰かがNetezzaデータベースでどのように動作するのか、なぜすべてのレコードを削除するのが速いのか説明できますか? テーブルからすべてのレコードを削除するための内部ログインを知る必要があります。どのようにtruncateコマンドがnetezzaで動作するのですか

+0

あなたの質問に回答がありましたか、他に探していましたか? – ScottMcG

答えて

0

動作はバージョンによって少し異なりますが、7.2.0.4以降ではTRUNCATEは、バックアップの実行中と同じテーブルに対する他のクエリと同時に実行できます。

TRUNCATEが発生すると、システムはTRUNCATEが実行されているトランザクションのTXIDを記録します。

TXIDより前にトランザクションを開始したクエリは、TRUNCATEが実行される前のテーブルを参照します。

TRUNCATEのTXIDがコミットされた後に開始されたトランザクション中にテーブルを参照するクエリは、スキャンリストから低いTXIDによって作成されたすべての行を削除することを知っているため空のテーブルが表示されます。

したがって、削除された各エクステントをマークするだけで済むため、TRUNCATEは非常に高速です。 TRUNCATEのTXIDより前に書かれたすべての未処理トランザクションがコミットされると、システムはすべてのストレージをプールに静かに解放します。

関連する問題