CodeZine(コードジン)

特集ページ一覧

64bitに対応した「ODP.NET」を使ってみよう!

64bit環境のメリットを生かしたOracle データベース対応アプリケーション開発

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/06/15 14:00

目次

 アプリケーションが終了すると、経過時間がメッセージボックスに表示されます。 32bit環境で上記アプリケーションを実行してみます。アプリケーションを終了し[Visual Studio]のメニューから、[ビルド(B)]‐[構成マネージャー(O)]を選択します。[アクティブソリューション プラットフォーム(P)]リストボックスから<編集...>を選択し、[プラットフォーム(P):]から「x64」を削除します。

64bit環境での実行環境を削除
64bit環境での実行環境を削除

 再度アプリケーションを実行し、同様に[Windows タスク マネージャ]から[パフォーマンス]タブと[プロセス]一覧を確認してみましょう。[プロセス]一覧からアプリケーションの使用メモリが約1GByteに達した時点で[System.OutOfMemoryException]の例外が発生します。

プロセス一覧からのメモリ使用量確認
プロセス一覧からのメモリ使用量確認
OutOfMemoryExceptionの発生
OutOfMemoryExceptionの発生

 この「System.OutOfMemoryException」の例外は、大容量のデータセットをメモリに読む込むなどの処理を実施した際に発生します。 64bit環境で動作させた際にはこの例外が発生しませんでしたが、 32bit環境の場合は扱えるメモリ空間が少ないため大量のデータをデータセットに取得するような処理を行うと、このようなエラーが発生してしまいます。

 では、データを取得する速度は64bitと32bitで違いがあるか、確認してみましょう。先ほど作成した以下のコードの部分で、ループの回数を10回から3回に変更し、32bitでもエラーが発生しないような環境で違いを比べてみます。コード中にストップウォッチが仕込まれ、経過時間がメッセージボックスで表示されるようになっているので、速度結果を比べてみてください。

Oracle Databaseから大量データを取得するサンプルコード一部抜粋(C#)
private void button2_Click(object sender, EventArgs e)
  // 約100万行データの取得を3回繰り返す
  for (int iCnt = 0; iCnt < 3; iCnt++)
  {
    da.Fill(dt);
  }
}
Oracle Databaseから大量データを取得するサンプルコード一部抜粋(VB)
Private Sub button2_Click(sender As System.Object, e As System.EventArgs) Handles button2.Click
  '// 約100万行データの取得を3回繰り返す
  For iCnt As Integer = 1 To 3
    da.Fill(dt)
  Next
End Sub

 環境(キャッシュの有効、メモリサイズ)によって速度が異なるので一概には言えませんが、上記コードを実施した結果、64bitのほうが約5%程度アクセス速度が速い結果になりました。

おわりに

 64bitアプリケーションの大きなメリットは大量のメモリ空間を利用したアプリケーションが開発できる点です。クライアント側で大量メモリを利用することは少ないかもしれませんが、サーバーサイドで行うASP.NET MVC等の処理では大量のクライアントからのアクセス情報をセッションに格納したり、複数テーブルの内容をデータセットに格納しておき、各クライアントが参照するようなケースが増えると想定されます。それらの処理は大量のメモリを消費するため、大量のメモリ空間にアクセスできる64bitアプリケーションは現在のシステム構築においては必須であるといっても過言ではありません。

 ぜひ、この機会に「64-bit ODP.NET」を試していただき、そのメリットを実感してください。

 ※本文中、意見にわたる部分は、執筆者個人の意見表明です。

参考資料



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Oracle Tips

もっと読む

著者プロフィール

  • 日本オラクル 大田(オオタ ヒロシ)

    日本オラクル株式会社 Oracle Directテクニカルサービス部所属。開発者の視点から、Oracle Databaseの機能を最大限に活かすための手法を日々研究しながら、プリセールス活動やオンラインセミナー等による情報発信を行う。現在はWindows Server上でのOracle製品活用を推進...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5