2016-06-29 34 views
0

私は最近、私はすべてのフォームとを更新しましたアクセスのフロントエンドでのSQL Server 2014パフォーマンスの低下は

へのAccessデータベースの移行を完了した中で最もSQL Serverで動作するレポートの数すべてがうまくいけば、期待どおりに全面的にパフォーマンスが向上します。

しかし、私はどこにでも答えを見つけることができない1つの問題があります。私のユーザーは、アクセス 'Find and Replace'ダイアログボックスを使用して、ほぼ2100の特定のレコードをアクセスDBで検索します。これはほぼ即時です。 SQL Serverデータベースでは、Accessを完了しフリーズするのに30秒以上かかります。

SQL Serverアクティビティモニタでは、検索を使用するときにバッチリクエスト/秒スパイクが発生していることに気付きましたが、それ以外の場合、実際にアクセスが実際に何をしているのかを知る方法がありません[検索と置換]ダイアログボックスの表示方法や解決方法について説明します。

誰もこれまでに遭遇したことはありますか?

+0

SQLプロファイラを使用して、バックグラウンドで何が起こっているのかを監視できます。 'findとreplace'はネイティブSQL関数ではないので、恐ろしく非効率的なことをしていると思います。特定のケースに絞って使用できるようにするには、ストアドプロシージャとフォームを使用して独自に記述する必要があるかもしれません。 –

答えて

1

これは、行単位で実行されます。したがって、値が一致する多くの単一の更新があります(search)。

linked tablesではなく、Pass-Throughという形式でクエリを使用します。ユーザーはデータを見ることができ、SQLコマンドで一括してfind and replaceの機能をプログラムすることができます。これは非常に簡単です。

+0

情報Slavaをお寄せいただきありがとうございます。デフォルトの検索ダイアログで使用するクエリを変更する方法はありません。私のユーザは、デフォルトの検索ダイアログをプルアップし、私が作成したカスタムのものを使うためにCtrl + Fを使わないことに慣れなければなりません!ああ喜び... – Ryan

+0

これは、MS Accessのために書かれています。あなたはテーブルを多くの異なるソースにリンクすることができ、それは動作します。 –

+0

パススルークエリを作成し、そのフォームを(ODBCリンクテーブルの代わりに)リンクすると、パフォーマンスが5〜10秒から瞬間的に向上しました(SQL Serverで高速化したい場合) 2100レコードの私の小さなデータセットで。ただし、パススルークエリは更新不可能であり、サブフォームでは使用できません。 – tony722

関連する問題