質問: accessで作成したサーバdbへの接続が重い サーバーpcにaccessで作成したdb(テーブルのみ)を置き、 クライアントpcには、accessで作成したソフトをインストールし、 そのインストールしたソフトを使用してサーバーdbへの 接続を行い、データの入力や変更を行っています。 (テーブルのリンク を使用しています) そこで質問なのですが、 クライアントpcが2台あったとして、 1台目のソフトを起動するときは普通に接続できるのですが、 その1台目のpcでソフトを起動したままの状態 (サーバdbと接続されている状態)で、 2台目でもソフトを起動しようとする (サーバdbと接続しようとする)と、 とても時間がかかります。 とても時間はかかるのですが、しばらくするとつながり、 一度繋がればそこからは普通に使用できるようになります。 原因が何かご存知の方が見えましたら ご教授お願いします。 また現在はそのサーバdbを参照するクライアントpcは4台程度ですが、 将来的にクライアントpcを数十台に増やしたいということなので、 今の段階からaccess以外のdbへの乗せ替えを検討したほうがよいでしょうか。 dbといっても色々な種類があると思いますが、 accessからの乗せ替えが容易で、且つ安価なdbはありますか? こちらも重ねて教えて頂けたら幸いです。 よろしくお願いします。
回答: 手前味噌ですが、過去の回答を参考にして下さい。 http://okwave.jp/qa3578425.html 数年前(6年位かな)作ったシステムで、 4人同時使用でストレスなく使っていました。 今回の質問と構成は似ています。 >2台目でもソフトを起動しようとすると、とても時間がかかります。 >一度繋がればそこからは普通に使用できるようになります。 起動時以外は正常だと言う事なので、起動時の処理が怪しいですね。 起動時に開くフォームや、実行されるモジュール等あれば、 その内容を見直して頂いて、どこで時間がかかるのか? 原因を特定する必要があると思います。 具体的な方法として、簡単なのは、 ソースの所々で msgbox を表示するようにして、 時間がかかる処理を探します。 >とても時間がかかります。 ちなみに、「とても」とは、どれ位ですか? 数分?数十分?数時間? >原因が何かご存知の方が見えましたら 質問の内容だけでは、原因特定は困難だと思います。 もう少しそちらで原因を探って頂いて、 何か新しい情報がありましたら、補足欄へお願いします。 あと、osやaccessのバージョンもお願いします。 >将来的にクライアントpcを数十台に増やしたい 数十台となれば、accessのみでは無理だと思いますので、 データベース側は置き換える必要があるでしょう。 (クライアント側のシステムはaccessのままで良いと思います) 上記の回答にもありますが、 sql server 2005 express edition から ステップアップする方法があります。 >且つ安価なdbはありますか? express edition は無償ですが、 次の workgroup edition 以降は高価です。 http://www.microsoft.com/japan/presspass/detail.aspx?newsid=2403 また、サーバ役のpcのosに関しても、数十台なら、 サーバ用のosが必要になり、クライアントにcalも必要です。 これもxpやvistaに比べると、高価になります。 http://www.microsoft.com/japan/windowsserver2003/sbs/howtobuy/pricing.mspx 費用を抑えることを考えるなら、 無償のデータベース(postgresql等)を、 無償のos(linux系)で利用する事をご検討下さい。 この場合も、クライアント側はaccessで作れますので、 現行システムの大部分を、再利用する事が可能だと思います。 http://allabout.co.jp/internet/database/closeup/cu20050219a/