間が空くと忘れてしまうのでメモ。
以下、[]内は適宜変更。
>Db2 SQL
--oracleでいうdual表
SELECT * FROM SYSIBM.SYSDUMMY1
--テーブル定義コピー
CREATE TABLE [TABLE_NAME_BK] LIKE [TABLE_NAME] COMPRESS YES IN [TABLE_SPACE]
--データコピー
INSERT INTO [TABLE_NAME_BK] SELECT * FROM [TABLE_NAME] WITH UR
--TRUNCATE文
TRUNCATE TABLE [TABLE_NAME] IMMEDIATE
--テーブル、ビュー一覧
SELECT TABNAME FROM SYSCAT.TABLES
WHERE TYPE IN('T','V') AND TABSCHEMA =[SCHEMA_NAME]
ORDER BY TABSCHEMA, TABNAME
>Db2 コマンド
--接続
db2 "CONNECT TO [DB_NAME] USER [USER_ID] USING [PASSWORD]"
--sql実行
db2 -x "SELECT CURRENT DATE FROM SYSIBM.SYSDUMMY1"
-x ヘッダー(列名)なし出力
--sqlファイル実行
db2 -tvf /home/work/insert_test.sql
-t セミコロンでSQL終了
-v 実行結果表示
-f ファイル実行
--再編成
db2 "REORG TABLE [TABLE_NAME]"
--統計情報更新
db2 "RUNSTATS ON TABLE [TABLE_NAME] WITH DISTRIBUTION AND DETAILED INDEXES ALL"
--切断
db2 "CONNECT RESET"
※データベース切断だけ
db2 "TERMINATE"
※データベース切断とdb2プロセスも終了
--db2リアルタイムモニター
db2top -d [DB_NAME]