- ベストアンサー
Accessで検索を高速化
- Accessで検索を高速化する方法をご教授ください!
- 顧客データの検索画面をAccessで作成していますが、最近動きが著しく遅くなりました。サクサク動くようにするための知恵をお教えください。
- テーブルをSQLサーバに置いてリンクしなおしてみたり、絞り込んでから検索をかけるなど、検索の高速化には色々な試みをしましたが、うまくいきません。どのような方法が有効でしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ミスリードが怖いので今回限りとします。 バックエンドの顧客データファイルをローカルにおいて再リンク。 これで試した場合に 共有フォルダに置いた場合とさほど処理時間が変わらなければ Accessでの処理が限界にきていると推察されます。 両者とも他に誰も使用していない状況で試す必要があります。 差が格段に大きければネットワーク上に置いてあるために 問題が発生していると考えても良いのではないかと思います。 じわじわと遅くなったのではなければ 昨年くらいからWindows Update でいろいろとOSにも修正が入っているので MSさん何かまずい事していない?と疑いたくなります。 以下は随分と昔なのですが調べた中で関係ありそうなのをピックアップしました。 [ACC2003] 複数のユーザーでリンク テーブルにアクセスするとパフォーマンスが落ちる http://support.microsoft.com/kb/838670/ja ネットワーク共有上のファイルを開いたとき、開くのに時間がかかる、読み取 り専用で開く、あるいはエラー メッセージが表示される http://support.microsoft.com/default.aspx?scid=kb;ja;814112 Windows Vista を実行しているコンピュータで Microsoft Office Access デ ータベースを開いたとき、または使用しているときに発生することがある問題 http://support.microsoft.com/kb/935370/ja あとは、アンチマルウェアが足を引っ張っているとか・・・。 いずれにしろ、常時20人弱が頻繁に更新・新規レコード作成を行うのですから Accessには荷が重すぎるように思います。 デッドロックに乗り上げたりファイル破損の可能性が常に付きまとうので 念には念を入れて作りこまないと・・・。 それに9万レコードのデータがLANを流れるわけですから。 以上、ご参考まで。
その他の回答 (1)
- nicotinism
- ベストアンサー率70% (1019/1452)
出来ることは限られているように思います。 既に試されてはいるかと思いますけど一応。 ・氏名ふりがなフィールドと電話番号にインデックスを設定。 ・『検索』を、Filter で行っているのならクエリの抽出条件で行うように変更。 ・SQL Server にデータを置いてあるなら、パススルークエリを試してみる。 「access sqlserver パススルークエリ」辺りでGoogleって見てください。
お礼
ご回答ありがとうございます! >・氏名ふりがなフィールドと電話番号にインデックスを設定。 調べたところあいまい検索ができる場合はインデックスの作成はあまり意味がないと知りました。 また、レコードの新規作成や更新を頻繁にやっていると、インデックスがあると今度はそっちが遅くなると知り、あきらめました。 >・『検索』を、Filter で行っているのならクエリの抽出条件で行うように変更。 現時点でクエリの抽出条件でやっています。 たまたま最初からそうしていただけなんですけど。。。 Filterより抽出条件のほうがはやいんですね!知らなかったです! >パススルークエリ ためしてみたんですが、なぜか余計に遅くなってしまいました。。。 これをやれば簡単に早くできるよ、という具合にはいかなそうですね。 私が不勉強なだけで、 SQLServerを使えば早くなる方法がある気がします。 じっくり時間をかけて勉強していきたいと思います。 ありがとうございました!
お礼
たびたびありがとうございます! >バックエンドの顧客データファイルをローカルにおいて再リンク。 さっそく週明けにでもこれやってみます! どこが遅いのか、なんで遅いのか、まったく見当も付かず、 どうしてなんだろうと考えながらも手が思い浮かばず 何年も経過している次第です。 こうやってやってみれば原因が絞り込めていきますね! 大変参考になります! >常時20人弱が頻繁に更新・新規レコード作成を行うのですから >Accessには荷が重すぎるように思います。 こちらについても大変参考になりました! Accessの限界ってどのくらいなんだろうと、それも知らなかったので・・・。 原因が絞り込めたら、社内システムの新しい運用方法を考えたほうがよさそうですね。 週明けに色々ためしてみてまた結果をお礼に書かせていただきます。 色々とありがとうございます!
補足
>バックエンドの顧客データファイルをローカルにおいて再リンク。 上記方法をためしてみました。 すごく速くなったわけではないですが、 サーバー上のテーブルを見にいくよりは速かったです。 いただいたURLを参考にさらに調べをすすめていきたいと思います。 ありがとうございました!