[pgsql-jp: 25581] Re: Access2000+PostgreSQL7.2 で放置するとフリーズ
Kamada Takehiro
kamada @ hct.zaq.ne.jp
2002年 4月 11日 (木) 01:49:10 JST
> 皆様に質問なのですが、Accessで作成した画面は使い終わったら、画面をすぐに
> 閉じるというのが、最善の解決策なのでしょうか?
ACCESSを使うのでしたら、リンクテーブルを使わずに
パススルークエリとODBC Directで作ると比較的安全
かと思います。
必要なデータだけをサーバーからローカルMDBに持って
きて、ACCESSの便利なフォーム機能はローカルMDBの
データに対して使い、更新したデータをODBC Directで
サーバーに書き戻せば、ACCESSやJETの便利で危険な
機能を使わずにDBサーバーに接続できます。
ACCESSの強力な印刷機能にはパススルークエリや
リンクテーブルを使う場合でも更新しないスナップショット
型のクエリをレコードソースに与えてあげれば十分に
使えます。
リンクテーブルを使い更新可能なレコードセットを開くと
ACCESSやJETが更新用の追加の接続を開いたり、
他ユーザによる更新を監視するために、定期的にサーバ
から極めて効率の悪いSQL文でデータを取得したりと
ロクなことがありません。
加えて、フォームのレコードソースが更新可能なクエリで
WHERE条件のないものだったりすると、最悪の場合は
クエリで使うテーブルのレコード全件をローカルに運んで
来る可能性があります。
更新できないスナップショット型のクエリを元にしたフォーム
でも同じ症状が出るか確認して、それで症状が出ないようで
したら次のようなことを行うと症状が軽減できるかも知れません。
[1] MSysConfテーブルをDBサーバー側に作成して、一度に
取得するレコード数やデータ取得間隔を調整する。
[2] JETがプールする接続のタイムアウトなどのJETのODBC
オプションパラメータをレジストリで調整する。
[3] フォームで表示中のレコードの最新状態を確認するため
ACCESSがレコードを再取得する間隔を長くする。
-
鎌田 武弘
pgsql-jp メーリングリストの案内