2010年7月30日(金) 18:24 JST

複数のユーザーでリンク テーブルにアクセスすると、パフォーマンスが落ちる

  • 2009年11月 5日(木) 19:25 JST
  • 投稿者:
    kao
  • 閲覧件数
    1,866
Access Tips Windows XP、Windows 2000、または Windows NT 4.0 上に保存されている Access データベース ファイル (mdb) にリンクテーブルを設定して複数のユーザーでアクセスすると、2 人目以降のユーザーのパフォーマンスが落ちる場合があります。


Access でリンクテーブルにアクセスする際、リンク先のデータベースの情報を取得するために、開く、閉じるの動作が数回おこなわれます。データベースを閉じるとき、 Access はロック情報ファイル (ldb) を削除しようとしますが、リンク先のデータベースが別のユーザーによって開かれている場合、ロック情報ファイル (ldb) は別のユーザーによって使用されているために削除することができません。その場合、オペレーティング システムはファイルが削除できなかったことを Access に通知します。しかし、リンク先のオペレーティング システムとして、Windows XP、Windows 2000、または Windows NT 4.0 を使用している場合、オペレーティング システムから Access に通知するまでに時間がかかるため、パフォーマンスに影響します。

回避策
この現象を回避するには、Autoexec マクロを使用します。

1. リンク先のデータベース (mdb) にて空のダミーの ”test" テーブルを作成します。
2. リンク元のデータベース (mdb) にて "test" テーブルにリンクを設定します。
3. リンクした"test" テーブルを基にダミーの ”test" フォームを作成します。
4. 以下の AutoExec マクロを作成します。

アクション
フォームを開く

アクションの引数
フォーム名: test
ビュー: フォーム ビュー
データ モード: 読み取り専用
ウインドウ モード: 非表示      

トラックバック

このエントリのトラックバックURL:
http://matrix-kh.com/matrix/trackback.php/20091105192540547
  • 複数のユーザーでリンク テーブルにアクセスすると、パフォーマンスが落ちる
  • 2件のコメント
  • アカウント登録
表示形式
コメント投稿

コメントは投稿者の責任においてなされるものであり、サイト管理者は責任を負いません。

  • 複数のユーザーでリンク テーブルにアクセスすると、パフォーマンスが落ちる
  • 投稿者:ゲストユーザ on 2010年2月24日(水) 18:04 JST

はじめまして ウルトラマンと申します。
まさに同様の現象が発生していて、ネット検索でようやくこちらまでたどり着きました。
「回避策」はとりあえず実装できましたが、検証環境が無く困っているところです。
本題ですが、AutoexecでダミーのTESTフォームを開くことで、何故本現象が回避できるのですか?
素人で申し訳ありません。できれば理由を教えてください
 

  • 複数のユーザーでリンク テーブルにアクセスすると、パフォーマンスが落ちる
  • 投稿者:ゲストユーザ on 2010年6月 5日(土) 09:25 JST

実際に試してみましたが、遅いままです。<br>

この回避策は何の意味もありませんでした。

オンラインユーザ

ゲストユーザ: 7

ログイン

ログイン