さまざまな角度からデータベースを比較してみる
まずは、以下の表を見てもらいたい。
これは、IBMが作成したDB2とOracleのライセンス価格比較表だ。5年間の保守費用を含めると、Oracleのライセンス価格は、DB2のおよそ2倍になるとのこと。大規模なシステムを構築する場合には、この価格差はばかにできない金額になるかもしれない。
しかしながら、DB2の機能とOracleの機能では、たとえ名称が同じ、あるいは似たようなものであっても、その中身まですべて同じかと言えば決してそうではない。DB2とOracleでは、大本のアーキテクチャが異なる部分もあり、同じ名称の機能でも実装方法や動作が異なることも多々あるのだ。
これらの違いは、ある尺度を持って比較すれば、どちらが優れていると言えるかもしれないが、文化の違いとしか言えないようなものも多く、一概には優劣を決められない。さらには、データベースのシステムを5年間運用する際に必要になるのは、ライセンスや保守の費用だけではない。運用管理の手間もあり、それらももちろんコストとして考慮する必要がある。
とはいえ、定価ベースのライセンス価格であれば、構成によってはDB2とOracleではそれなりの差が発生する可能性もあるわけだ。もし近々にシステム更新などを考えているのであれば、今一度データベースに注目し、さまざまな角度から比較してみるのもいいかもしれない。
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ライセンスを用意しているので、これら特徴的な機能をすぐに評価することも可能となっている。
もっとデータベースを活用することを考える
おのおのデータベースを比較し、自分たちに最適なデータベースはどれかをじっくりと評価して欲しい。とはいえ、データベースを単なるデータの入れ物的に使っているのであれば、どのデータベースを選択してもさほど差は出ないかもしれない。
商用データベースの多くは、基本的なデータベース機能についてはすでに成熟しており、シビアな使い方をしなければ大きな差にはならないかもしれないのだ。 実際のところ、新バージョンのデータベースに搭載されている各種の便利な機能を、皆さんは一体どれくらい利用しているだろうか。多くの場合、半分の機能も利用し切れていないのではないだろうか。
データベースを単なるデータの入れ物ではなく、データ処理をするためのエンジンと捉えると、新たな世界が見えてくるだろう。 実際、COBOLベースのプログラムで行っていたデータ集計処理を、データベース機能をうまく使ってデータベースの中で処理するよう作り変えたら、数時間かかっていたものがほんの数分で終わったなどという事例も耳にしたことがある。それだけデータベースは、強力なデータ処理エンジンを持っているということだ。
もっとデータベースを活用するようにすれば、既存システムでもより素早い処理が可能になるかもしれない。徹底的にデータベースを使いこなすようになれば、各データベースが搭載している機能や性能がより重要なものになってくるはずだ。そうなれば、自分たちにとって各データベースの差の部分もはっきりと見えてくるようになるだろう。