●CHGPFとAlter Table
既存のデータベースに新たにフィールドを追加したい
そんな時に、SQLでDropして、Createし直す?
それとも、Alter TableでAdd Columnする?
もちろん、一般的なDBなら、これでOk
でも、AS/400のDB2なら、この方法もできるけど
DDSっていう昔ながらのデータベースファイルレイアウト記述を使えば
CHGPFコマンドで、変更したいDBと、その設計書のDDSを指定すれば
OSがDDSの通りに変更してくれる
●そんな便利なの
実は、私は最近知りましたー(笑)
どのバージョンからは知らないけど、かなり前から使えたみたい
臨床検査基幹システムで、システム拡張の度にDBにフィールド追加を繰り返してました
その時は、追加前のDBをどっかに保存し、追加後のDBを新規作成して
追加前のDB内容をCPYF(Copy File)コマンドで流し込み・・・
でも、これって結構めんどくさくてリスキー
だけど、CHGPF (あっ! Change Physical Fileの略ね)を知ってたら
もっとガシガシ使っていたのに・・・・
●ちなみに
CHGPFでは、dbの最後の次に追加でなくても
途中にでもフィールドを追加できますよー
SQL のは出来ませんけどねー(笑)
●ただだからといって
CHGPFやIBM AS/400データベース機能が凄いってわけではないんだけどね
AS/400のDB機能が凄い所は
早い
削除レコードの再利用が可能 (自動クリーニング機能みたい(笑))
開発言語との親和性が高い
こっちの方がシステムエンジニアとしては超重要
だって、レコード数はそれほど多くないのに、ファイル容量がでかくなって
レスポンスが落ちてくる・・・・なんで?
って時に、削除レコードの再利用が出来たら、それこそ放置プレイができる(笑)
これって、お客様やエンドユーザーに、削除領域の解放
DB2 for i : RGZPFM コマンドの実行
SQL : Vacuum や Optimize Table コマンドを実行
するしかないんですよね。
でも、DB2 for iはいつの頃からか、削除レコード再利用が可能となったので
RGZPFMコマンドを使う場面がほとんどなくなりましたね
たぶん、削除領域の管理で悩まれているシステムの方には
その悩みを解決する手段としては最高かも(笑)
だって、放置できるようになるんですからね
ごめんなさい・・・・途中から方向が変わっちゃいましたね(笑)
人気ブログランキング