これ何て呼びますか

AccessからOlacleに接続してデータを取得する処理について
教えてください。

数十万件単位のレコードがあるOracleのテーブルを参照する
必要があるのですが、かなりの負荷がかかると思うので出来
るだけ効率の良い方法で取得したいと思っています。

現在はパススルークエリを作成して、必要に応じてQueryDef
でSQLを書き換えて使用しています。
特に問題は感じないのですが、本などを見るとADOやDAOで
Oracleに接続し、結果をRecordSetに格納するやり方が一般
的なように思えます。

ADO/DAO接続でデータを持ってくるのと、パススルークエリで
データを参照するのでは処理スピードは違うでしょうか?
また、パススルークエリを使用する場合のデメリットなどがあり
ましたら教えてください。

よろしくお願いいたします。

A 回答 (1件)

ADO や DAO のレコードセットの場合、おそらく、やり方にもよると思います。

レコードセットのタイプ ( 読み取り専用や更新可能など )によってもいくらかスピードが違ってくると思いますが、DAO は ODBC 経由でしか Oracle に接続できなかったように思いますので、パススルークエリと同じようなものではないでしょうか。
ADO の場合、ODBC 経由だと DAO 同様、パススルークエリと同程度だと思いますが、ODBC を経由しないやり方 ( OLE DB Provider ? ) だと ODBC 経由のやり方より高速になるんじゃないかと思います。
ただ、ADO にしても DAO にしても、レコードセットに全件を読み込んで Filter プロパティで抽出条件を指定するようなやり方だと、パススルークエリの WHERE 句で抽出条件を指定するやり方より遅くなってしまうと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報

このQ&Aを見た人がよく見るQ&A