社内ネットワーク上にACCESSを置いて、
複数人でそのファイルにアクセスしているのですが、大変重いです。
同じ機能のデータベースアプリケーションをMySQLとperl(またはphp)なんかで組めば、
一般的に軽くなると考えてよろしいでしょうか?
1レコードにつき30個のデータ項目があり、数千から数万のレコード。
そのデータベースをAccessのフォームを通して利用。
常時4人くらいが接続しています。できたら20人くらいで簡単に接続できるようにしたいです。
漠然とした質問だと思いますが、簡単な一般論を教えてください。
Mr.Tです、こんにちは。
一般的には、
まず、重いというのが何が重いのかを調べる必要があるでしょう。
それによって、対応の仕方が異なりますので。
ハードのスペックが十分なら、とりあえずAccessからSQLServerに移行してみる、という手はありますね。Accessからウィザード形式で移行できるので、簡単ですし。
おそらくいま遅いのは、Accessを直接共有しているからロックがかかっているためだと思います。
一番手っ取り早いのは、Accessをそのまま使って、テーブルだけSQLServerに置いてリンクテーブルとすることですね。
SQL Server 2005 Express Editionなら無料です。
このとき各ユーザーの使うmdbはローカルにコピーして各人で使います。バージョンアップが頻繁だと、ちょっと面倒です。
Accessでどこまでやっているかわかりませんが、ただ単にデータを呼び出して、書き込むだけのシステムなら、Perl+MySQLだろうがAccessだろうがそう変わりはないでしょう。実力次第では。
Accessで充実したインターフェースを作っているなら、これをコンバートするのは大変です。
ポイントとなるのは、Accessをローカルにコピーして運用できるかどうか、セキュリティをどう考えるか、保守メンテナンス、といったところではないでしょうか。
URLはダミー
私もAccessを業務で使用したことがありますが、ネットワーク越しにMDBの共有で使用すると、非常に遅く使い物になりませんでした。これは実行エンジンがローカルにあるために、一度テーブルデータを全てローカルに持ってくるため遅くなるらしいです。オラクルやSQLサーバでは、DBサーバ上で計算し、結果だけをクライアントに返してくれるため処理が早いです。インデックスを作成してなかったり、作成してもインデックスが使われるSQLの書き方でなかったりという処理が遅くなる原因は多々ありますが、一般的にMySQLとperl(PHP)を使用したシステムは、AccessMDBを共有したシステムより早いです。
コメント(0件)