1
0

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 3 years have passed since last update.

勉強メモ35_db2のデータメンテとかする場合の接続コマンドや注意点メモ

Last updated at Posted at 2021-11-14

#0 はじめに
 ・db2のデータメンテとかする場合の接続コマンドや注意点を記載しました。

#1 db2接続コマンド

####DB2起動

db2 db2start

####DB2ログイン

db2 connect to DB名 user ユーザー名 using パスワード

####SQLファイルを実行する

db2 -tvf tmp/jikkou.sql

####データをCSVにexoprtする ※of delは、CSV形式を意味します

db2 export to 出力パス + 出力ファイル名 of del "SQL文"

####DB2切断

db2 disconnect current

#2 データメンテによるSQL作成の注意点(※遅くなるのでやめた方がいい注意点、やむ負えない場合は使用してよい)

####1 実行する時に利用するSQLファイルは2MBまでが望ましい

####2 抽出のアンサーセットは絞り込める順番にする(パフォーマンス向上のため)

####3 WHERE句に索引キーとなるカラムに対して関数や演算子は利用しない
 ・インデックスが効かなくなる
####4 索引キーとなるカラムに対して、LIKE文の使用NG
 ・インデックスが効かなくなる
####5 WHERE句のカラムの比較で属性の異なる値を比較するのはNG
 ・遅くなる
####6 GROUP BY 使用するときに抽出条件にWHERE句で指定している
 ・HAVINGは利用しない、GROUP BYした後、絞り込むのは非効率
####7 UNION句は使用していない
 ・アクセスする表の数が増えるほどソート等のCPUが増えるため
####8 IN句の最大件数は確認しておく
####9 副問い合わせは行っていない
####10 SELECT * COUNT * みたいに*を使用しない
####11 SELECT は必要な列のみにする
####12 SUM MAX AVG COUNT以外の集約関数はなるべく使用しない
####13 INSERTはカラム名は省略せず、全て指定して作成する
 ・省略するとテーブル構造が変更になったときに再バインドを行う必要があるため
####14 JOINはしていない
####15 With UR、RS、RR指定して、ISOLATION LEVEL(標準はCS)の変更を行っていない
####16 カーソルで更新処理をするとき、FOR UPDATE OF句(更新対象行のロックを取得するため)を明示的に指定している
####17 UPDATE、DELETE文はカーソル使用している
####18 カーソル読み込み処理はFOR FETCH ONLY を使用している
 ・不要なロックを避けるため
####19 カーソル使用後はクローズしてる
####20 一度に実施するUPDATEは200行位にとどめる
####21 LIKEの先頭ワイルドカードはパフォーマンスが悪くなる
####22 COUNT文はCASE文でまとめて書く

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?