ここから本文です

accessのデータ抽出処理速度について

cf_********さん

2010/11/2109:54:50

accessのデータ抽出処理速度について

サーバー内のテーブルをODBC接続でリンクテーブルを作り、それをテーブル作成クエリで抽出結果のデータテーブルを作ろうと思っています。、(リンクテーブルはサーバー内の4つとローカルテーブル1つを結びつける形になります)その際の方法として①クエリのデザインビューでリレーションし、テーブル作成クエリで行なう②①のクエリをSQLビューで開きSQL文をVBAのdocmd.RunSQLに書き換えて実行させる方法とどちらが処理速度が速いでしょうか?また、他に良い方法があれば教えてください。目的はあまり抽出時間をかけてサーバー側に負荷を与えたくないです。宜しくお願いいたします。

補足あと、上記のようにaccessへoracle内のデータベースからデータを抽出する、良く使われる手法など詳しく教えて頂ければ有難いです。

閲覧数:
3,458
回答数:
2
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

csh********さん

2010/11/2120:27:39

クエリは作って一度使えばSQL文がバイナリにコンパイルされて二度目からは多少速くなり
RunSQLなどで毎回SQL文を投げると、SQL文をバイナリコードに翻訳を行いに行くのでレスポンスが下がる
と言うのが机上の理論です。

データは Oracleに置いて、ストアドファンクションでクエリ処理をして
必要な結果セットだけネットワーク上でトラフィックさせると言うのが理想かもしれません。

Webデータベースでは最近はどのサイトもほとんどストアド必須なような気もします。

せめてリンクテーブルをOracle側のビューにしてデータをコンパクトにするとか
列を減らすとか言う手はありませんか?

またユーザー別にテンポラリテーブルを作って逃げる方法もありますし
本来はユーザーごとのテーブル使用を止めるのが正規化だと思います。

質問した人からのコメント

2010/11/22 15:36:55

お二方ともご丁寧に有難うございました。勉強になりました。参考にさせて頂きます。

ベストアンサー以外の回答

1〜1件/1件中

fto********さん

2010/11/2111:01:47

まず、運用型RDBアクセスのodbcについて直ローカルとのリンクはお勧めできません
色々な問題があり、サーバーとの排他・クライアント共用制御でサーバー側負荷を与えかねません。
参照時にはローカルテーブルへselectして書き出します
odbcでのデータはselectとupddtaの運用を2工程でおこないますし
upddtaではselect時の更新プロバディとの同一性を選択したりします。
リンクするマスター関係についても10年前は直なんてのもありでしたが
マスター自体をselectデータに対してハッシュしたものにローカル一時をリンクという
サーバーLGL級に対する昔のアクセスインデックスの作成の前段階を構築します
面倒でもローカルにodbc用のハッシュテーブルを作成することをお勧めします。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる