##表のコピー方法
表をまるっと別表にコピーしたい場合とか、
集計結果を表を作成してロードしたいとかそういうとき
Db2 warehouse on cloud (以後Db2 WoC : 旧dashDB for Analytics)の環境で大量にデータをコピーするとログフルになるケースがあります。
(※ユーザーシナリオに依存。通常はないと思う)
Db2 WoCはフルマネージドで提供されるので、ログの設定を変更する事が出来ません。
なので、できるだけログに書かれない方法でデータをコピーしたい。
たとえば
CREATE TABLE xxx AS (SELECT ...) WITH DATA
とやっちゃうとINSERTの処理が実行されるんで表のデータ量が大きいと、
ログに書かれるしログ・スペースが必要だしでパフォーマンスもイマイチ。
INSERT SELECT と同様ですな。
"insert into <ターゲット表> select * from <ソース表>
"
必要に応じて CREATE TABLE の時に NOT LOGGED INITIALLY を使用する方法もあります。
LOADユーティリティを利用
こういうときはログを出力しないLOADユーティリティを利用します。
Db2 WoCのサンプル表 GOSALES.PROCUCT表をコピーしてみます。
CALL SYSPROC.ADMIN_CMD ('LOAD FROM
(SELECT * FROM *gosales.product*)
OF CURSOR
REPLACE INTO *yourschema.hoge*');```