Access 2007 データベースを SQL Server 2008 R2 バックエンドに移行し、Access フロント エンドとリンク テーブルを保持しました。少数のユーザーでパフォーマンスは問題ありませんでした。
昨日、アプリケーションが複数のユーザーに公開され、午後にはパフォーマンスが最悪になりました。フロントエンドが開いたり閉じたり、何かをするのに文字通り数分かかりました。終了の遅延は、Application.Quit を呼び出すメイン メニューのボタンを介して行われるため、特に奇妙に思えました。他には何もしません。
古い LDBView ユーティリティが .laccdb ファイルで動作しているように見えました。ログオンしている 11 人のユーザーと、もうログインしていない 15 人のユーザーが表示されていました。ユーザー名は表示されず、接続元のマシン名だけが表示されました。ほとんどのマシン名は 2 つの仮想ホストだったので、それらが実際に別のユーザーだったのか、同じユーザーが複数回報告されたのかはわかりません (.laccdb ファイルの形式について十分に把握していないため、判断できません)。
問題のある Access フロント エンド ファイル (.accdb ファイル) のコピーを取得し、元のファイルと同じネットワーク上の場所からコピーを実行しました。うまくいきました。したがって、問題はネットワークや SQL Server データベースにあるわけではなく、Access フロント エンドがなんらかの理由で破損しているようにも見えません。
これらの可能性を排除すると、問題は複数のユーザーが同じ Access フロントエンドを同時に使用することに関連しているようです。テーブルが SQL Server に移行される前の元の Access データベースは、同じ数のユーザーに対して正常に機能していました。そのため、フロントエンドの基本設計は複数のユーザーをサポートできるようです。
Access フロント エンドでの競合の問題の原因を追跡するにはどうすればよいですか? 私には、.laccdb ファイル内の同時ユーザー数を表示する以外に、何が起こっているのかを把握することはできないようです。
ところで、元の Access データベースは複数のユーザーで問題なく機能していたので、各ユーザーが Access フロント エンドの独自のコピーを持つことはできないと言われました。メンテナンスの悪夢になるからです。