• ベストアンサー

追加クエリの遅さを解消したいです。

外部データベースのデータをAccessのテーブルとして取り込んでから、作業するシステムを作成しています。 日々新規のデータが追加されていく外部データベースの、新規データのみを追加していく追加クエリを作成したのですが、とにかく遅いのです! データは6万件ほどあります。けれど、新規に追加したいデータは、日々30件ほどです。 この遅さを解消する方法はありませんか? 良いアドバイスがありましたら教えて下さい。

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

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.2

つまり、外部DBのテーブルと、AccessDBのテーブルの差分を取って、この差分だけをAccessDBのテーブルに追加してる、ということですか? んと、まず、外部DBのテーブルを全部取り込む。 取り込んだテーブルにインデックスをつける。 その後で、差分を取って、追加するっていうふうにしたらどうでしょ。

maokubo
質問者

お礼

外部データベースとの関係を見直し、複数回に分けて追加するようにしたら、1分まで短縮できました。 ありがとうございました。

その他の回答 (3)

  • majionea
  • ベストアンサー率30% (3/10)
回答No.4

NO1に回答したものです。 250MB以上あって、追加クエリの起動に時間がかかるんですね。考えられることは、(1)ユニオンクエリを使用していないか、(2)クロス集計クエリを使用していないか、(3)ハードディスクの容量の空きがない、この3つが考えられますね。 (1)と(2)のクエリを使用すると、メモリー次第では実行するのにかなりの時間がかかります。また、ハードディスクの空きは十分に作ってください。 そもそもmaokuboさんが作られたDB(データベース)の容量はいくらですか?10000MB以上ですか? こうなったら、「最適化」を実行してみてください。やりかたは、「ツール」-「データベースユーティリティ」-「最適化」です。

maokubo
質問者

お礼

追加クエリを複数に分けて実行するようにしたら、1分まで短縮できました。 クロス集計などは使用していないです。 回答ありがとうございました。

  • alfeim
  • ベストアンサー率58% (114/195)
回答No.3

6万件もレコードがあるのであれば別のちゃんとしたデータベースを利用した方が良いと思いますが・・・ 速度的な問題もある程度は緩和されると思いますよ

  • majionea
  • ベストアンサー率30% (3/10)
回答No.1

メモリーは幾つのをお使いですか? 以前、3000件のデータを32MBで管理していましたが、その時も遅かったです。 6万件ならば、256MB以上は必要じゃないですか?

maokubo
質問者

補足

早速の回答ありがとうございます。 メモリは254MBあります。 もっと増やさないとだめですか? 追加クエリの終了する時間を計ってみたら、4分でした。

関連するQ&A