- ベストアンサー
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はありますか? こちらも重ねて教えて頂けたら幸いです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
手前味噌ですが、過去の回答を参考にして下さい。 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/
その他の回答 (1)
<確認> サーバーPCとは、字義通りワークステーションタイプでOSもそれなんでしょうか? 1、分散型のC/Sシステムでも12台程度が限界。共有型なら数台が限界。 2、SQL Server+Access.adp なら全ての関数ライブラリはAccess のを転用できます。 (もちろん、転用・共有を意識して作成していることが要件です) ちょっとしたテスト結果ですが、<SQL Server+Access.adp>は<Access>の50倍速です。 >Access 2000から、『Microsoft Accessプロジェクト』形式による保守が可能となりました。 >Accessプロジェクトを使うと Access2000 と SQL Server7.0 との親和性をより向上させ、 >Accessデータベースを作る感覚で C/Sシステムの構築ができます。 >・・・Acccessプロジェクトは、C/Sシステム構築の新たな開発環境として、 >大きな進化を遂げたのは確かです。 (インフォネット 本田剛氏)
お礼
返信がおそくなり申し訳ありません。 ご回答ありがとうございます。 やはりSQLServerへの移行を視野に入れていく方向で 考えたほうがよさそうですね。 Accessプロジェクトに関しての知識があまりないので、 そちらのほうも色々調べてみようと思います。 ありがとうございました。
お礼
返信が遅くなり申し訳ありません。 丁寧なご回答ありがとうございました。 ご意見を参考にさせて頂き、 もう少し追求してみようと思います。 ありがとうございました。