ClubDB2 #136 に参加:「ベタにDB2物理設計入門」

 今年初めての ClubDB2 に参加してきました。あけましておめでとうございます。
 テーマは「ベタに物理設計入門」。昨年のClubDB2では DB2 に留まらず幅広いテーマで開催をしてくださり、それはそれでものすごく勉強になったし面白かったのだけれども、やはり看板は「ClubDB2」。「2012年はDB2に回帰(笑)」とのことで、今年はしっかりとDB2の話題を中心に開催していく所存でござったようでございました(笑)。


 講師は、ClubDb2の母、すみちゃん。隅から隅までDB2を知り尽くし、かつ多くの事例に触れている人ならではの濃いお話を聞かせていただきました。
 今回のテーマ「物理設計」が、全体の開発フェーズの中でどういう位置づけ(タイミングやスコープなど)にあるのかの全体像からの説明からテーブルスペース/コンテナ/エクステント/ページの概念まで、レイヤ(レベル)を明確に分けた説明が、特にわかりやすかったです。複数のコンテナを持つテーブルスペースの場合に単純にラウンドロビンでコンテナを切り替えていく、という説明で「ん?そんな単純にしていいのかな(パフォーマンスとか安全性とか)」と思ったけれども、まぁこの部分を工夫してなんらメリットがあるわけじゃないな、とひとり納得しました(データ内容による配置分けは、パーティショニングで行うので)。


 一番印象に残った機能が、MDC(多次元クラスター表)。単純化して言ってしまえば、パーティショニングなのですが、(1)複数の軸(時系列/商品カテゴリ/エリア など)を指定してパーティション(MDCでは「セル」と呼ぶ)に分けることができる (2)今までなかった区分(たとえば新しい年月)が登録されたら勝手にそのためのセルが追加される  という点が特徴的です。
 特に(2)では、いつもMySQLでパーティショニングを使っていて、新たなパーティションを指定するのを忘れたせいで、最後のパーティションが膨らみ続けるということをやらかしているので(笑)、いいな、と思いました。パーティション指定って数値とか年月とかの具体的な数字の大小比較を指定しますが、そうではなくルールベースで指定できると便利なのだろうな、と妄想。 うまくパーティション条件を(即値ではなく演算値を使って)指定することで、MySQLでもできないかしらん、、、ちょっと調べてみたいと思います。 そういえば、今回の話を聞きながら「MySQLパーティションはどうなっているんだっけ」と久々に MySQL 5.5 のマニュアルを開いたら、なんだか知らないパーティションタイプがいっぱいあって、びっくりしました。ゼロから勉強するつもりで、一度ちゃんとマニュアル読まないと。。。





 今回のClubDB2は、80人近い参加で大盛況。しかし勿体ないなと思うのは、ほとんどが懇親会(という名の飲み会)に参加しないで帰ってしまうこと。
 ClubDB2本会で 10 のものを得て帰れるとしたら、懇親会では 90 くらいの収穫があるんですけどね。人の話を聞くだけできちんと理解できる人は良いですが*1、たいていは幾分かのモヤモヤを抱えて帰ることになるかと思います。 ClubDB2の懇親会には、講師の方もたいてい参加してくださいますし*2、講師以外でもこの分野、他の分野に詳しい人も参加していますから「双方向のコミュニケーション」によって、モヤモヤ感の解消もしやすいものです。「双方向のコミュニケーション」って、なんだか固そうですが、要するに「会話」ですから。 他の人が自分のモヤモヤを解決するために詳しい人に質問しているのを脇で聞いているだけでも「あぁ、あぁやって表現すると、知りたかったことを詳しい人から引き出せるのか」などと参考になることも多くあります。ClubDB2本会がストレートに技術的なお勉強をする場ならば、懇親会は変な言い方ですが「会話のおべんきょう」をする場なのかもしれません。人生の中で恒久的に役に立つのは後者であることは言うまでもありません:-)


 ということで、充実した2012年最初のClubDB2でした。次回は別件の予定が入っており参加できないので、また3月!楽しみにしています!
 スタッフのみなさん、懇親会で遊んでくださったみなさん、ありがとうございました!

*1:そんな人はいないと思っています。だって講師が言い間違えることもあるし、複数の意味に解釈できる表現をしてしまうことだってあるから。それを脳内修正して理解できるとしたら、その人は「聞いて理解した」ではなく「もともと詳しかった」だけでしょう

*2:どうしても忙しかったり体調悪かったりする場合を除く