|
DB2コマンド
WINDOWSコマンドプロンプトからのSQL実行方法
|
|
|
- Windowsコマンドプロンプトからdb2cmdを実行(コマンド行プロセッサの起動)
使用時の注意点:
- 自動コミットがデフォルト有効となっている
- 確認方法
- 解除方法
DB2 UPDATE COMMAND OPTIONS USING C OFF
|
|
サービスの起動・停止
|
|
|
|
インスタンスの作成
|
|
|
|
DB2の接続
|
|
|
DB2 CONNECT TO [データベース名] USER [接続ユーザ] PASSWORD [パスワード]
|
|
表領域の作成
|
|
|
DB2 CREATE TABLESPACE [表領域名] MANAGED
BY SYSTEM USING ('D:\DB2\NODE0000\表領域名')
|
|
表領域の変更(表領域不足が発生した場合)
|
|
|
(SQL0289N 表スペース "テーブルスペース名" の新規ページを割り振れません。SQLSTATE=57011 などの
エラー発生時)
- テーブルスペースの確認を行い、合計ページ数、コンテナー数を取得
- テーブルスペースの変更を行う
DB2 ALTER TABLESPACE [表領域名] RESIZE (ALL [変更サイズ])
|
※変更サイズ: 合計ページ数/コンテナー数+増加させたいページ数(128ページくらい?)
|
データベースの作成
|
|
|
DB2 CREATE DATABASE [データベース名]
ON D: USING CODESET IBM-943 TERRITORY JP COLLATE USING IDENTITY
|
|
テーブルの作成
|
|
|
DB2 CREATE TABLE [テーブル名] { フィールド名1 データ型1, フィールド2 データ型2,・・・}
IN [表領域]
|
|
フィールドの追加
|
|
|
DB2 ALTER TABLE [テーブル名] ADD COLUMN [フィールド名] [型名] NOT NULL
|
|
テーブルのコピー(エクスポート、インポート)
|
|
|
- テーブルコピー元のデータベースよりエクスポートを行う
・データベース接続
DB2 CONNECT TO [コピー元データベース名]
|
・エクスポート
DB2 EXPORT TO [エクスポートファイル名].IXF OF IXF MESSAGES [エクスポートファイル名].EXM
SELECT * FROM [テーブル名]
|
・切断
- テーブルコピー先のデータベースへインポートを行う ※コピー先のデータベースにコピー元のテーブルが無い場合
・データベース接続
DB2 CONNECT TO [コピー先データベース名]
|
・インポート
DB2 IMPORT FROM [エクスポートしたファイル名].IXF OF IXF COMMITCOUNT 1000 MESSAGES
[エクスポートしたファイル名].EXM CREATE INTO [テーブル名]
|
・切断
- テーブルコピー先のデータベースへインポートを行う ※コピー先のデータベースにコピー元のテーブルがある場合
・データベース接続
DB2 CONNECT TO [コピー先データベース名]
|
・インポート
DB2 IMPORT FROM [エクスポートしたファイル名].IXF OF IXF COMMITCOUNT 1000 MESSAGES
[エクスポートしたファイル名].EXM INSERT INTO [テーブル名]
|
・切断
<注>・インポート、エクスポートコマンドは対象テーブルをロックする
・大量データの場合は必ずコミット件数を指定すること
・テーブルへの反映モードを状況に応じて変更し使用する
1.INSERT
挿入
2.INSERT_UPDATE
一時キーによる更新+挿入
3.REPLACE
削除+挿入
4.REPLACE_CREATE
テーブルが無い場合、テーブル作成+削除+挿入
5.CREATE
テーブル作成+挿入
- CSVファイル形式をインポート
※インポートするタイプをDELにする
DB2 IMPORT FROM [CSVファイル名].CSV OF DEL COMMITCOUNT [コミット件数] MESSAGES
[ログ出力名] REPLACE INTO [テーブル名]
|
|
複数のテーブルをまとめてコピー
|
|
|
DB2 DB2MOVE [データベース名] EXPORT -sn [スキーマ名] -tn [テーブル名] -u [ユーザ名] -p [パスワード]
|
・コマンド実行フォルダにエクスポートされる
・テーブル名に「,」をつけて複数重ねることが可能
・戻す場合は DB2MOVE [データベース名] IMPORT
|
表領域の確認
|
|
|
DB2 LIST TABLESPACES [SHOW DETAIL]
|
|
データベースの確認
|
|
|
DB2 LIST DATABASE DIRECTORY
|
|
コンテナーの確認
|
|
|
DB2 LIST TABLESPACE CONTAINERS FOR [表スペースID]
|
|
テーブルの確認
|
|
|
|
フィールドの確認
|
|
|
DB2 DESCRIBE TABLE [テーブル名]
|
|
インデックスの確認
|
|
|
DB2 DESCRIBE INDEXES FOR TABLE [テーブル名]
|
|
外部ファイルの実行
|
|
|
- auto commit offでの実行
- auto commit onでの実行
※外部ファイル内にエクスポート、インポート文を記述していると一括で実行することができる
|
表の再編成
|
|
|
- 表の統計情報を更新
DB2 RUNSTATS ON TABLE [スキーマー名].[テーブル名]
|
- データベースでの統計を計算し、表または索引が、再編成またはクリーンアップされる必要があるか判別
※「*」が表示されていると再編成が必要と思われる
DB2 REORGCHK CURRENT STATISTICS ON TABLE [スキーマー名].[テーブル名]
|
- 表の再編成
DB2 REORG TABLE [スキーマー名].[テーブル名]
|
- 索引の再編成
DB2 REORG INDEXES ALL FOR TABLE [スキーマー名].[テーブル名]
|
- 再編成後、表と索引の統計情報を更新
DB2 RUNSTATS ON TABLE [スキーマー名].[テーブル名] WITH DISTRIBUTION AND DETAILED INDEXESE ALL
|
- 再編成後の内容を確認
DB2 REORGCHK CURRENT STATISTICS ON TABLE [スキーマー名].[テーブル名]
|
|
|