DB2の勉強会「ClubDB2」に初参加

DB2勉強会

DB2の勉強会に初参加してきました。


この勉強会を知った経緯は、DB2のフィックスパックを適用するために手順を調べていたところ、よくお世話になっている「Unofficial DB2 BLOG」さんに案内が載っているのを発見したためです。


今回のテーマが面白そうで、DB2アーキテクチャーの基本や、SQL実行の仕組み、Oracleとの違いを比較しながら勉強しましょう!というものでした。
見つけたのも何かの縁だと思って早速申し込み。そして参加してきました。
https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/ClubDB2/page/Club%20DB2

備忘録

以下、勉強会の話題で気になったところを備忘録として。(間違ってるところもあるかも;)

  • DB構成1:Oracleは1インスタンスに1データベースが対応している。DB2は1インスタンスに複数のデータベースを対応させることができる。
    • 上記の違いがあるが故、DB2の構成パラメーターは システム > DB2 > インスタンス > データベース 単位で存在し、設定が可能。
  • DB構成2:クライアントからの要求があった場合、DB2は必ずメモリ上(バッファプール)にデータを展開してデータを読み取る。これは、ディスクへ読み書きるタスク数はコア数に依存するが、メモリ上ならばスレッド数で調整が可能なため並列処理の高速化が可能。
  • トランザクション分離レベル:Oracleは2種、DB2は4種。どちらもデフォルトはREAD COMMITED(コミット読取り)。
  • 読み取り一貫性:Oracleは「マルチ・バージョン一貫性制御(Read Committed)」…Select発行時点でのコミット済みデータを読む。DB2は「Currentry Committed」…常に最新のコミット済みデータを読む。
  • ロック・エスカレーション:救済機能。これを起こすようなアプリを作っちゃだめ。

感想

年々DB2Oracleの差はなくなってきているような印象を受けました。読み取り一貫性はDB2Oracleに合わせる形で、DB2 v9.7から双方の違いはほぼないようです。また、オプティマイザについてはOracle側がDB2と同じコストベース計算となっています。こうやってどんどん最適化が計られると、やはり差がなくなるのは必然なんだろうなと感じました。そしてどこで差別化を行うかというのが課題なんだろうと思います。


勉強会の雰囲気はゆるく和気藹々な感じで、楽しかったです。193回の実績があるだけあって、初参加の人よりも常連さんの方が多かった印象。


講師のすみちゃんの説明が、堅くて眠くなるような説明じゃなく、経験談も交えての弾むような話し方が聞いていて飽きなかったです。
きっとめちゃめちゃDB2に詳しいんだろうなってベテラン雰囲気な人もちらほら。


良い勉強になりました。次回も行ってみたいです。