エンタープライズ:特集 2003/07/25 18:19:00 更新

[Java Developer特別企画]2003年9月号
知っておきたいデータベース移行術「SQL Server→Oracle編」 (15/15)

JAVA Developer 2003年9月号より転載

メリットと注意事項
 ここまで、SQL ServerのデータをOracle9iに移行するための手順とヒントを紹介してきました。表の構成情報とデータ型さえ移行できてしまえば、SQL ServerからCSV形式でデータをエクスポートして、Oracle9iにインポートするなどでデータの移行も可能になります。またAccessなどを利用し、両方のデータベースにODBC接続しながらデータを移行させるのもよい方法です。

●移行のメリット
 SQL ServerからOracle9iに移行することで多くのメリットが生まれます。SQL ServerからOracle9iに移行するメリットをまとめましょう。

・マルチOS対応
 SQL Serverは、Windows環境下でしか動作しないのに対し、Oracle9iは多くのOSで動作します。Javaアプリケーションの稼働環境を考えると、多くのOS上で動作するのは大きなメリットです。

・パーティション技術による性能の向上
 データベースが巨大になると、データベースのアクセス速度は低下していきます。つまりデータベースが大きいために余分なデータにまでアクセスしなければならなくなるからです。

 Oracle9iは、SQL構文解析のオプティマイザ機能、PL/SQLのネイティブコンパイル機能のほか、大容量データベースの性能問題を解消するために「パーティショニング」と呼ばれる技術があります。パーティショニングは、データベースの表を分割し、アクセスする速度を大幅に向上させる技術です。

・同時アクセス時の排他制御の強化
 Oracle9iには行レベルロックと読み取り一貫性という機能があります。これは複数のユーザーのアクセスに対して行レベルで排他制御を行う機能です。

 SQL Serverにも行レベルの排他制御はありますが、ロックエスカレーションというしくみで多くのユーザーがロックをしはじめると、行レベルではなくページ、すなわち表という単位でロックの範囲が広がってしまうものです。多くのユーザーがアクセスする場合、全体のパフォーマンスに影響してしまいます。

 また読み取り一貫性は、そんなロックされている環境下でも正しくデータの読み込みが行える機能です。Oracle9iは読み取り一貫性があるのに対して、SQL Serverはダーティリードが発生するデータベース構造です。詳しくは、Microsoft SQL ServerかOracle9iのホームページを参照してください。

・運用効率の向上
 データベースは、長期に運用するほど、領域の再編成やチューニングが必要になってきます。

 SQL Serverはオンライン中(稼働中)に表の再編成や索引の再編成ができないのに対し、Oracle9iはそれが可能です。つまりメンテナンスのためにデータベース全体を停止させる必要がないのです。Webサイトなどで運用を続けるデータベースでは、限りなくデータベースを停止することなくアプリケーションを動作させることが求められます。

・マルチメディアデータの取り扱い
 SQL ServerにはないOracle9iの特徴として、イメージ、オーディオ、地図情報などのマルチメディアデータを格納することが可能です。最近のWebアプリケーションでは、マルチメディアデータが頻繁に使われるようになってきており、アプリケーションの拡張性が広がります。

●移行できないケース
 仕様上の制限から、そのまま移行できない例外的なケースがあります。

 たとえば、表が1,000を超える列で定義されているデータはOracle9iには移行できません。これは、SQL Server 2000では列の最大数が1,024であるのに対して、Oracle9iはちょうど1,000だからです(1行あたりのデータサイズについては、SQL Server 2000が8,060バイトなのに対し、Oracle9iは無制限なのですが……)。

 もっとも、データの設計時にきちんと正規化を行っていれば、列が1,000を超えることはないでしょう。

移行ポイントを再確認
 データベースの移行は、現在使用しているデータベースに関する情報、すなわちデータ設計段階で作成される各種ドキュメントがきちんと整理されていることが重要です。ドキュメントが不十分な場合は、最悪の場合、Javaなどのソースコードをすみずみまで調べる必要があり、余計な時間とコストがかかります。

 データベース移行時のチェックポイントを整理しました。 皆さんが抱える課題の解決に、この記事が役立てば幸いです。

[JAVA Developer特別企画]
知っておきたいデータベース移行術
「SQL Server→Oracle編」
(1)データベース移行に伴う影響範囲〜JDBCドライバ
(2)移行の実際〜認証/権限と命名規則
(3)データ型の移行〜数値型
(4)データ型の移行〜文字型
(5)データ型の移行〜日付データ型
(6)データ型の移行〜ラージデータ型/そのほかの特殊な型
(7)表定義に関する情報の移行
(8)関数の移行〜数値関数
(9)関数の移行〜文字関数
(10)関数の移行〜日付関数
(11)関数の移行〜そのほかの関数
(12)演算子の移行
(13)文法/Transact-SQL文/索引/ビュー/トリガーなどの移行
(14)メリットと注意事項〜移行ポイントを再確認

関連リンク
▼JAVA Developer
▼定期購読のご案内
▼バックナンバー販売協力店

JAVA Developer9月号表紙 Javaコレクションのマスターを目指せ!
JAVA Developer 9月号

大特集
病みつき! テストファースト

特集2 BEA WebLogic
[特別企画]
・コレクションフレームワークとデータ構造
・知っておきたいデータベース移行術
 「SQL Server→Oracle編」
・Webアプリケーションセキュリティ

前のページ | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |      

[西脇 資哲,JAVA Developer]