顧客データの検索画面をAccessで作成しています。
テーブルの数は全部で9、各テーブルのレコード数は約1万、
各テーブルのフィールド数は多くて20くらいです。
テーブル用のAccessをサーバに置いておいて、
検索画面フォームのAccessはそれぞれの社員のローカルに置いています。
テーブルを参照している社員数は20弱です。
Accessのバージョンは2007や2010、Runtimeを使っている社員もいます。
氏名フリガナと電話番号で検索できるようになっていて、
下の□のなかに、各テーブルの該当のものが抽出されるようになっています。
この検索画面の動きが最近著しく悪いです。
もっとサクサク動くようにしたいです。
色々調べてはみたのですが
・テーブルをSQLサーバに置いてリンクしなおしてみたのですが
余計動きが遅くなりました。
・「ある程度絞り込んでから検索をかける」というのが高速化のポイントらしいですが
常に全件が検索対象なので、それができません。
・テーブルのレコードについては常に全社員が新規作成、変更等できる状態でなければならないです。
動きを高速化させる知恵はないでしょうか?
ご教授ください!
No.2ベストアンサー
- 回答日時:
ミスリードが怖いので今回限りとします。
バックエンドの顧客データファイルをローカルにおいて再リンク。
これで試した場合に
共有フォルダに置いた場合とさほど処理時間が変わらなければ
Accessでの処理が限界にきていると推察されます。
両者とも他に誰も使用していない状況で試す必要があります。
差が格段に大きければネットワーク上に置いてあるために
問題が発生していると考えても良いのではないかと思います。
じわじわと遅くなったのではなければ
昨年くらいからWindows Update でいろいろとOSにも修正が入っているので
MSさん何かまずい事していない?と疑いたくなります。
以下は随分と昔なのですが調べた中で関係ありそうなのをピックアップしました。
[ACC2003] 複数のユーザーでリンク テーブルにアクセスするとパフォーマンスが落ちる
http://support.microsoft.com/kb/838670/ja
ネットワーク共有上のファイルを開いたとき、開くのに時間がかかる、読み取
り専用で開く、あるいはエラー メッセージが表示される
http://support.microsoft.com/default.aspx?scid=k …
Windows Vista を実行しているコンピュータで Microsoft Office Access デ
ータベースを開いたとき、または使用しているときに発生することがある問題
http://support.microsoft.com/kb/935370/ja
あとは、アンチマルウェアが足を引っ張っているとか・・・。
いずれにしろ、常時20人弱が頻繁に更新・新規レコード作成を行うのですから
Accessには荷が重すぎるように思います。
デッドロックに乗り上げたりファイル破損の可能性が常に付きまとうので
念には念を入れて作りこまないと・・・。
それに9万レコードのデータがLANを流れるわけですから。
以上、ご参考まで。
この回答への補足
>バックエンドの顧客データファイルをローカルにおいて再リンク。
上記方法をためしてみました。
すごく速くなったわけではないですが、
サーバー上のテーブルを見にいくよりは速かったです。
いただいたURLを参考にさらに調べをすすめていきたいと思います。
ありがとうございました!
たびたびありがとうございます!
>バックエンドの顧客データファイルをローカルにおいて再リンク。
さっそく週明けにでもこれやってみます!
どこが遅いのか、なんで遅いのか、まったく見当も付かず、
どうしてなんだろうと考えながらも手が思い浮かばず
何年も経過している次第です。
こうやってやってみれば原因が絞り込めていきますね!
大変参考になります!
>常時20人弱が頻繁に更新・新規レコード作成を行うのですから
>Accessには荷が重すぎるように思います。
こちらについても大変参考になりました!
Accessの限界ってどのくらいなんだろうと、それも知らなかったので・・・。
原因が絞り込めたら、社内システムの新しい運用方法を考えたほうがよさそうですね。
週明けに色々ためしてみてまた結果をお礼に書かせていただきます。
色々とありがとうございます!
No.1
- 回答日時:
出来ることは限られているように思います。
既に試されてはいるかと思いますけど一応。
・氏名ふりがなフィールドと電話番号にインデックスを設定。
・『検索』を、Filter で行っているのならクエリの抽出条件で行うように変更。
・SQL Server にデータを置いてあるなら、パススルークエリを試してみる。
「access sqlserver パススルークエリ」辺りでGoogleって見てください。
ご回答ありがとうございます!
>・氏名ふりがなフィールドと電話番号にインデックスを設定。
調べたところあいまい検索ができる場合はインデックスの作成はあまり意味がないと知りました。
また、レコードの新規作成や更新を頻繁にやっていると、インデックスがあると今度はそっちが遅くなると知り、あきらめました。
>・『検索』を、Filter で行っているのならクエリの抽出条件で行うように変更。
現時点でクエリの抽出条件でやっています。
たまたま最初からそうしていただけなんですけど。。。
Filterより抽出条件のほうがはやいんですね!知らなかったです!
>パススルークエリ
ためしてみたんですが、なぜか余計に遅くなってしまいました。。。
これをやれば簡単に早くできるよ、という具合にはいかなそうですね。
私が不勉強なだけで、
SQLServerを使えば早くなる方法がある気がします。
じっくり時間をかけて勉強していきたいと思います。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- JavaScript html javascriptにてWeb SQLを操作したい。 2 2022/12/16 17:43
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Accessの処理速度を速めるためにテーブルとそれ以外を分割してもああまり速くならないのですが・・・
その他(データベース)
-
ACCESSのFindコマンドが遅い
その他(プログラミング・Web制作)
-
Accessを開きなおすとテキストボックスの値がエラー#Name?になる
その他(データベース)
-
-
4
SQLの速度をあげるには・・・
Visual Basic(VBA)
-
5
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
6
accessの処理が遅い
その他(データベース)
-
7
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
8
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
9
アクセスをネットワークでリンクさせると非常に遅い!?
その他(データベース)
-
10
Accessでのレコード存在チェック
その他(データベース)
-
11
Access サブフォームでの選択行の取得
その他(データベース)
-
12
実行時エラー 3265「要求された名前、または序数
Visual Basic(VBA)
-
13
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
14
accessでクエリの結果だけをリンクしたい。
Access(アクセス)
-
15
Access クエリ実行が急に非常に遅くなりました。
Access(アクセス)
-
16
ODBCの接続に失敗しました(3146)について
その他(Microsoft Office)
-
17
ACCESS フォームをそのまま印刷について
その他(データベース)
-
18
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
19
Accessでブレークポイントを設定してないのに一時停止してしまう
その他(データベース)
-
20
サブフォームが見えなくなる。
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
アクセスのフォームを開くとき...
-
accessのレポートであとから他...
-
アクセスにエクセルのデータを...
-
Accessを使って日付を比較したい
-
Access 複数フィールドの一致
-
Accessで検索を高速化
-
Access 2010 土日祝日を除いて...
-
accessで、「集計のオプション...
-
Access クエリの更新結果をテ...
-
Access2010 携帯番号にハイホン...
-
ACCESS クエリで重複データを最...
-
access・カウント結果がゼロで...
-
[至急]accessクエリ結果を入力...
-
Accessのフォーム上にレコード...
-
accessの自動更新処理をできな...
-
accessで選択クエリで得た全レ...
-
ACCESSのフォームからデータの...
-
ACCESSでテーブルから選択,表示...
-
アクセス 0以外をカウントす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
accessのレポートであとから他...
-
Accessを使って日付を比較したい
-
アクセスにエクセルのデータを...
-
Access 複数フィールドの一致
-
accessで、「集計のオプション...
-
Accessの入力フォームから、テ...
-
Accessで検索を高速化
-
MS-Accessのレコード内のフィー...
-
Access2010 携帯番号にハイホン...
-
Accessフォームでデータ入力で...
-
オートナンバー型を1から始める...
-
Access 2010 土日祝日を除いて...
-
アクセスのフォームを開くとき...
-
Accessクエリのデータ表示件数...
-
Accessのクエリによる集計が出...
-
Access クエリの更新結果をテ...
-
アクセスの重複クエリ
-
アクセスのオートナンバーの再...
-
ACCESS Yes/No型の集計
おすすめ情報