V9.7の速さの秘密
2つ目のテクニカルセッションでは、DB2 V9.7の高性能化の秘密が紹介された。日本アイ・ビー・エム システムズ・エンジニアリング インフォメーション・マネジメント シニアITスペシャリストの白井徹哉氏は、DB2はリレーショナル・データベースの歴史と共に進化してきたと言う。
実際に業界標準のベンチマークであるTPC-C、TPC-Hにおいても、他社データベースをしのぐ高パフォーマンスをたたき出している。
「V9.5でもすでに、パフォーマンスは卓越していました。パフォーマンスが高ければ、より低いスペックのサーバーでも十分処理できる、そうなればより低いソフトウェアライセンスコストでよく、そしてより低いソフトウェアメンテナンスコストで済むことになります。結果的に、大きなコスト削減につながります」と白井氏はパフォーマンスによるコスト削減効果を強調する。
スキャン効率が向上
性能向上の仕組みは数多くあるが、そのなかからとくに白井氏が時間を割いて説明したのが、スキャン効率を向上するスキャン共有機能だった。データベースでは、ディスクから読み込んだデータをメモリ上のバッファプールに格納し、高速に処理を行う。
多くの大規模データベースでは、実際に参照する表の大きさは、メモリー上のバッファープールよりも、大きくなることが多い。そのため、巨大な表を複数のユーザーが同時にスキャンするような場合、従来は、開始タイミングのずれによって、各ユーザーは表の異なる箇所を別々に読み取っていた。その結果、10ユーザーが同じ表をスキャンする場合に、同じ表を10回読み取るような状況が発生していた。
これに対しV9.7では、現在既に処理されている読み取りの位置を確認し、これから始まるスキャンの開始位置を自動調整することで、他のユーザーの処理によってバッファープールに読み出されたページを再利用するようにしたのだ。
これにより、複数のセッションから同じ表をスキャンするような処理の場合に、大幅なI/O効率化が図られ、処理が大幅に高速化する。実際、100ユーザーが同時に表スキャンするという実験では、このスキャンの共有化の機能により14倍もの性能向上が見られたとのことだ。