現在、

社内ネットワーク上にACCESSを置いて、
複数人でそのファイルにアクセスしているのですが、大変重いです。

同じ機能のデータベースアプリケーションをMySQLとperl(またはphp)なんかで組めば、
一般的に軽くなると考えてよろしいでしょうか?

1レコードにつき30個のデータ項目があり、数千から数万のレコード。
そのデータベースをAccessのフォームを通して利用。
常時4人くらいが接続しています。できたら20人くらいで簡単に接続できるようにしたいです。

漠然とした質問だと思いますが、簡単な一般論を教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2007/05/16 12:05:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:Mr_T_0023 No.1

回答回数20ベストアンサー獲得回数0

ポイント27pt

Mr.Tです、こんにちは。

一般的には、

  • Accessは複数人の同時利用を考えられたものではありませんので、複数で利用している時点がまずマズイ。
  • ネットワーク越しに見ているということは、ネットワーク帯域が圧迫されている可能性はないかも調べる必要があります。
  • Accessは更新、削除を繰り返すと肥大化するので、最適化が必須。
  • 遅いのは、テーブルにIndexがないため、ということもある。
  • Webアプリケーションにした場合は、Webサーバのスペックによって応答速度は上下する。Webアプリにしたから早くなるのかどうかは、複合要素できまる。そもそも、遅いというのが何を指標にして遅いというのかわからない。
  • HDの読み書きが遅い場合なんかも影響大きい。

まず、重いというのが何が重いのかを調べる必要があるでしょう。

それによって、対応の仕方が異なりますので。

ハードのスペックが十分なら、とりあえずAccessからSQLServerに移行してみる、という手はありますね。Accessからウィザード形式で移行できるので、簡単ですし。

http://Dammy

id:memo77 No.2

回答回数238ベストアンサー獲得回数20

ポイント27pt

おそらくいま遅いのは、Accessを直接共有しているからロックがかかっているためだと思います。

一番手っ取り早いのは、Accessをそのまま使って、テーブルだけSQLServerに置いてリンクテーブルとすることですね。

SQL Server 2005 Express Editionなら無料です。

このとき各ユーザーの使うmdbはローカルにコピーして各人で使います。バージョンアップが頻繁だと、ちょっと面倒です。

Accessでどこまでやっているかわかりませんが、ただ単にデータを呼び出して、書き込むだけのシステムなら、Perl+MySQLだろうがAccessだろうがそう変わりはないでしょう。実力次第では。

Accessで充実したインターフェースを作っているなら、これをコンバートするのは大変です。


ポイントとなるのは、Accessをローカルにコピーして運用できるかどうか、セキュリティをどう考えるか、保守メンテナンス、といったところではないでしょうか。

URLはダミー

http://www31.atwiki.jp/memo77/

id:kuruma_neko No.3

回答回数2ベストアンサー獲得回数0

ポイント26pt

私もAccessを業務で使用したことがありますが、ネットワーク越しにMDBの共有で使用すると、非常に遅く使い物になりませんでした。これは実行エンジンがローカルにあるために、一度テーブルデータを全てローカルに持ってくるため遅くなるらしいです。オラクルやSQLサーバでは、DBサーバ上で計算し、結果だけをクライアントに返してくれるため処理が早いです。インデックスを作成してなかったり、作成してもインデックスが使われるSQLの書き方でなかったりという処理が遅くなる原因は多々ありますが、一般的にMySQLとperl(PHP)を使用したシステムは、AccessMDBを共有したシステムより早いです。

http://dummy.com

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません