DB2の特徴的な機能
DB2の最新版であるDB2 9.7では、従来製品に比べ数多くの拡張がなされている。その中でも、IBMが自信を持っている機能が3つある。その1つは、前回も紹介したXML機能のpureXMLだ。他のベンダー製品のようにリレーショナルデータベースのテーブル構造の中でXMLを扱えるようにしているのではなく、XML専用の処理エンジンを別途搭載しており、リレーショナルデータとXMLを真にハイブリッド処理できる構成となっている。
さまざまなデータベースにはそれぞれに特徴があるが、高速で柔軟に処理できるXML機能は、DB2の最大の特徴と言えるだろう。DB2では、今後もXML関連機能はさらに強化されていくようなので、XMLデータの活用という構想を持っているのであれば、DB2 pureXMLの機能や性能を一度評価してみるといいだろう。
もう1つの特徴が、ワークロード管理だ(図)。処理ごとに優先順位を付けワークロードをコントロールする機能は他のデータベースにもあるが、DB2ではそれをさらに柔軟できめ細かく制御できる。ワークロードマネージャを利用し、特性要件の異なるワークロードを目的別に分類、分類されたグループごとに優先度を決め、さまざまな制御が可能だ。許可する同時実行の数や処理時間、読み取り行数や一次表の消費スペースなどに上限を設定でき、それらの閾値に沿った実行ルールで、詳細なワークロードのコントロールが可能なのだ。
さらに、OSがAIXとLinuxであれば、ワークロード管理の際にOS配下のメモリやCPUリソースをワークロードに割り当てることが可能だ。OracleなどはむしろOSやハードウェアとは切り離し、データベースの中だけで制御しようとする傾向があるのに対し、DB2ではハードやOSと一体となったコントロールができる。 これは、IBMが得意とするメインフレーム的な思想のもとに実現している機能と捉えてもいいかもしれない。もしあなたが、メインフレームのようなきめ細かな制御というものにピンときたならば、DB2のワークロード管理について一度じっくり評価してみることをお薦めする。
3つ目の特徴が、圧縮機能だ。DB2の行圧縮では、ファイル圧縮でお馴染みのZIPと同様なLempel-Ziv符号ベースのアルゴリズムを採用している。この方式の特徴は、辞書を用いデータを圧縮するところにある。辞書を用いることで、より大きな単位のデータを短い数字キーに置き換えることができ、圧縮率を高めやすい方式なのだ。
さらにDB2では、表全体のパターンを分析し圧縮辞書を作成できる。他のデータベースの多くがページあるいはブロックレベルでの圧縮技法を採用しており、その場合には圧縮辞書がページごとに作成されるため、圧縮率の面では不利になることが考えられる。
表全体で辞書を作るDB2の圧縮方式では、表自体が大きくなりがちなデータウェアハウスなどで、特に高い圧縮率となることが期待できる。 データベースの圧縮機能は、最近では他社も力を入れている機能だ。圧縮機能を利用する際には、圧縮率が高くなることはもちろん、圧縮、伸張にはCPUの負荷がかかるはずなので、その分のオーバーヘッドがどうなるかも重要なポイントとなる。
また、同じサイズのデータであっても、データの内容によって圧縮が効きやすいデータ、効きにくいデータがある。そのため、カタログ上の圧縮率や実験データの圧縮結果を鵜呑みにするのではなく、実際に利用するデータを用い機能、性能の評価をすることをお薦めする。IBMでは、無償のDB2ライセンスを用意しているので、これら特徴的な機能をすぐに評価することも可能となっている。