4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Db2 warehouse on cloud (dashDB)で表をコピーする

Last updated at Posted at 2017-08-16

##表のコピー方法
表をまるっと別表にコピーしたい場合とか、
集計結果を表を作成してロードしたいとかそういうとき

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表をコピーしてみます。

CREATE TABLE *hoge* LIKE *gosales.product*;
CALL SYSPROC.ADMIN_CMD ('LOAD FROM   
           (SELECT * FROM *gosales.product*)
     OF CURSOR  
     REPLACE INTO *yourschema.hoge*');```
 
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?