• ベストアンサー

MSDEでデータを抽出する時の処理時間

Accessのデータベースから、ADOを用いてExcelにデータを抽出する作業をさせているのですが、データベースのレコード件数が多すぎて(現在40万件くらいで、日々2000件くらい増加)、時間がかかって困っています。 ある本に、「MSDEはAccess(Jet)に比べると、より大規模なデータを高速に扱うことが可能になっています。」と書いてあるのですが、これはSQLでの抽出時間が早くなるということで良いのでしょうか? 初心者で、プログラムや専門用語等に詳しくありませんので、できれば簡単な表現で教えていただけたら幸いです。よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hidebu-
  • ベストアンサー率53% (45/84)
回答No.2

結論からいうと高速になります。 十万件を超えるデータをACCESSで扱うのはちょっと無理があるので早々に乗り換えたほうがよいとおもいます。 ACCESSのライセンスをもっていれば無料でつかえるはずですし。 あとは#1のかたがいわれるようにDB構成の見直しと、 SQL文の検索条件の記述の見直しなどを行えば当面は大丈夫とおもわれます。 しかしMSDEではそのうちパンクするでしょうから、SQLサーバーやDB2、個人的には嫌いですがORACLEなどにグレードアップすることを考えたほうがよいでしょう。

takaandhiro
質問者

お礼

無料かつ高速になるとのことですので、とりあえずMSDEに変更しようと思います。 ありがとうございました。

その他の回答 (1)

  • cse_ri2
  • ベストアンサー率25% (830/3287)
回答No.1

40万件のデータから何件のデータを抽出するかによります が、ITのプロとしてコメントすると、40万件のデータで迅速 なレスポンスを必要とする場合、MSDEでは能力不足です。 NTまたはWin2000サーバに、OracleかMS-SQLServerの 導入を推奨します。 ただし、現状でも適切なIndexを貼ることで、幾らかはレス ポンスの改善は見込めます。 データベースの設計者、あるいはデータベースに精通した 技術者に依頼してみてください。

takaandhiro
質問者

お礼

ありがとうございました。 とりあえずMSDEで工夫してみて、 Oracle等はその後の検討課題としてみます。

関連するQ&A

  • 抽出データの欠落

    プログラムもほとんど知らない素人ですが質問させていただきます。^^; oracle9iデータベースで、未抽出の情報があれば、「抽出済みフラグ」を立て、さらにその情報はテキストファイルに出力する処理を開発者に作ってもらいました。 しかし、データの10件に抽出済みフラグが付いたのに、テキストファイルへの出力は8件とか9件しか出力されない といった現象が頻発して困っています。 当初はSQL文のみのプログラム(?)で現象が出たのでVBプログラムで作り直してもらったのですが、同じ現象が出ます。 データ総件数は3万件ぐらいで、抽出される件数は20~100件ぐらいです。 こういったトラブルはoracleデータベースで一般的にあり得るのでしょうか? よろしくお願いします。

  • DAOでMSDEってOKですか?

    お世話になっております。 Win95 Access2.0 Jetデータベース(MDB) の環境を WinXP  Access2003 MSDE の環境に移行する作業を行っております。 モジュール内でDAOのメソッドを多用しておりまして、 パフォーマンスや、システムの安定性に問題が無ければ ADOへの変更ではなく DAOでODBC経由で使用しようかと思っております。 MSDEの接続をDAOで接続する場合に、 リスクはありますでしょうか。 ご教授のほど、何卒よろしくお願いいたします。

  • MSDEって何ですか?

    多分データベース関連だと思うのですが、MSDEって何ですか? 何の略で、例えばSQL-ServerやMS-Accessと比べた時の、メリットやデメリットは何なのでしょうか?

  • MSDEでの大文字と小文字の区別について

    MSDEを使ってデータベースを構築しています。 基本的な質問なんですが、MSDEデータベースの中に格納したレコードについて大文字とか小文字を区別したいのですが、どうしたらいいのでしょうか? たとえば、「Picture」という項目(CHAR)が「ABC」という値のレコードをとってきたい場合、 Select * from 画像Table where Picture='ABC' というSQL文を発行すると、 「Picture」が「ABC」のレコードだけでなく「abc」のレコードもとってきてしまいます。 MSDEをインストールするときになにか、大文字小文字を区別できるようなオプションとかがあるんでしょうか? それともSQL文の書き方によってなにか対処方法があるんでしょうか? どなたか教えてください!!どうかよろしくお願いします。

  • 日付データの抽出方法を教えてください

    ACCESS97のVBAで開発しています。ACCESSデータベースから該当する日付データを抽出したいのですが、YYYYのみの条件でYYYY/1/1からYYYY/12/31までのデータを抽出したいのです。SQLでできるのでしょうか?もしできるのならそのやり方を教えてください。

  • 文字型フィールドの数値データの抽出

    mdbファイルを、VB6.0+ADO2.7で扱っています。 文字型フィールドに数値データが入力されたレコードを抽出したいのですが、何かよい方法はないでしょうか? そのフィールドに文字型データが入力されているレコードもあり、それを除外したいのです。 SQLでも、.filterプロパティでも結構です。お知恵を下さい。 よろしくお願いします。

  • MSDEのデータ保存場所

    あるシステムからの移行をやっています。(既にそのシステム会社はない)MSDEで動いていた模様でした。98でした。データファイルは突き止めて持って来ました。 MSDEをインストールしてサービス開始まで出来ています。 標準のMasterというデータベースはどこに? どこにデータファイルを保存して、SQLではどうやってファイルを開けば良いのか?MS系は初めてでトンと判りません。 アプリ作成が出来、Oracle、MySqlなどできるプログラマです。 宜しくお願いします。

  • ACCESS MSDE フォーム上からのデータ更新による競合

    いつもお世話になっております。 WINDOWS XP ACCESS 2002,2003 を使用しております。 既存のMDBファイルを MSDEを使用するADPファイルに置き換え、 なおかつ複数端末による運用が可能なようにシステムを変更しております。(元々複数端末で使用しています) 以下の手順でadpファイルを作って運用使用とする場合に疑問があるのですが。 (1)MSDEデータベースに接続したadpファイルを作成。 (2)フォームのレコードソースをMSDEデータベースのテーブル、 テキストボックスのコントロールソースに、そのテーブルに存在するフィールドを設定。 (3)このadpファイルを複数マシンに置き、同時に起動。 (4)作成したフォームで同一のレコードを同時に修正。 この場合に、後のほうで更新した時に 「データの競合」ダイアログが表示され、データを反映するか、先に更新されたほうを優先するか 選択できるますが、 mdbでも同様の運用が可能ですが、この運用を続けるとデータ破損の温床になるようですので控えておりました。 MSDEを使ったadpファイルでも同様のことが言えるのでしょうか? また、もしこの運用に問題があるとすれば、非連結のテキストボックスを設けて「更新」ボタンでADOによる 更新を行わなければならないのでしょうか。 レコードをリスト形式で表示しているので出来ればそれはさけたいのですが。 どなたかご教授のほど、何卒よろしくお願いいたします。

  • MSDEのデータ移行について

    VisualBasic6.0とAccess2000とMSDEを使って データーベースを管理するシステムを構築しています。 開発環境で作成したデータを違う環境に 移行したいのですが、その方法がわかりません。 どなたか教えて下さい。

  • アクセスでのデータの引き抜き(抽出)方法について

    アクセスのデータ抽出についてご質問が ございます。 100件あるデータの中から 抽出条件が異なるデータを レコードごとに3件抽出したいのですが 困ってます。 例えば、100件のデータの 1フィールド目の数値が 1234567890 7891234567 5678901234 となる値を 抽出条件に割り当て 100件中3件ほど、レコードごとに 抽出出来る 方法はないでしょうか? お手数ですがアドバイスお待ちして おります。