Oracleとの互換性を高めた3つのポイント
当然ながら、DB2とOracleでは基本的なアーキテクチャも異なるし、SQLもまるっきり同じというわけにはいかない。そのため、移行時にはそれなりにプログラムに手を入れる必要がある。とはいえ、機能的には両者ともそれなりに豊富に揃っているので、こちらにあってあちらにないという機能はそれほど多くはないはずだ。
しかしながら、Oracleの便利な機能を十分に使いこなしていればいるほど、DB2への移行は苦労することになるはずだ。 ところが、最新版のDB2 9.7では、OracleにあってDB2にはないといった機能を、大幅に減らすことに成功している。これにより、それなりにOracleの機能を使い込んでいたとしても、OracleからDB2への移行の手間を従来に比べて大きく削減しているのだ。
DB2 9.7でこの手間の削減に大きく貢献しているのが、Oracle独自の拡張プロシージャ言語であるPL/SQLのサポートがまず挙げられる(図1)。これは、足りなかったPL/SQLの機能をエミュレーションするといったものではない。
なんとPL/SQLのコンパイラを追加し、別途実装してしまったのだ。これにより、Oracleで動いていたPL/SQLのプログラムが、多くの場合、手をほとんど入れずにDB2 9.7の上で動いてしまうのだ。これは、エミュレータ方式ではないので、パフォーマンスの劣化も心配ないとのことだ。

もう1つのOracleとの互換性を高めたポイントが、Oracle固有の関数やデータ型のサポートをDB2 9.7では大幅に追加しているところだ(図2)。たとえば、結合演算子の(+)やVARCHAR2データ型なども新たに追加されており、それらを利用することで、SQLの書き換えの必要も大幅に削減されている。

3つ目の大きな変化が、DB2 9.7でのロックメカニズムの変更だ。Oracleを使っている技術者であれば当たり前の機能とも言える、読み取り一貫性機能がDB2 9.5までは実装されていなかった。そのため、更新中のレコードを読み込む際には、更新レコードはロックされ読み込むにはロックが解除されるのを待つ必要があったのだ。
これを回避するために、DB2では更新中のロックがなるべく発生しないようプログラミング側でなんらかの工夫をする必要もあった。DB2 9.7ではOracleと同様のREAD COMMITTED分離レベルを採用できるようになり、この拡張も移行の手間を大幅に削減することにつながる。
この記事は参考になりましたか?
- DB2 Webセミナー連載記事一覧
-
- 徹底的にOracleとの互換性を高めたDB2 9.7なら移行の手間も大幅削減
- データベースの特徴を理解し、自社に最適なデータベースを選択する
- XML本来の優位性をRDBで活用できるDB2 pureXML
- この記事の著者
-
谷川 耕一(タニカワ コウイチ)
EnterpriseZine/DB Online チーフキュレーターかつてAI、エキスパートシステムが流行っていたころに、開発エンジニアとしてIT業界に。その後UNIXの専門雑誌の編集者を経て、外資系ソフトウェアベンダーの製品マーケティング、広告、広報などの業務を経験。現在はフリーランスのITジャーナリスト...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア