dポイントプレゼントキャンペーン実施中!

アクセス2000で社内のデータ-ベースを作っています。
ようやくデータ-ベースが完成したので、データーベース分割ツールを使ってデーターベースをテーブルデータと、フォーム等に分割し、テーブルデータを社内のランのサーバーに置き、クエリ、フォーム及びレポートを各パソコンにコピーして皆で使えるようにしました。
とりあえず、動くのですが、動きが非常に重いんです。これは、どうすれば軽くなるのでしょうか?

A 回答 (3件)

他の皆さんのおっしゃっている通り、AccessでC/S(厳密には違いますが)を構築しようとするとパフォーマンスは悪くなります。

2000では97と比べるとマシにはなっているような気がしますが、それでも2台以上になると若干落ちてきますよね。

何台くらいで同時使用されているのでしょう?
自分の場合は5台がMaxですね。それ以上の場合はSQL-Serverにしています。特に2000からはAccessとSQL Serverの親和性がいいので(多少は癖がありますが)プロジェクトを使用しています。

 分割ツールを使ったっていうことはひょっとして全てのフォームやレポートがサーバー側のテーブルに連結しているのでしょうか?だとしたら危険ですので、データ入力用のフォームくらいは、クライアント側に同じ構造のワークテーブルを置いてそれを編集して、サーバー側に書き込む処理にした方が安全です。ロックのチェックも利きますし。

 ARCさんがおっしゃっているようにLANに流れるデータ量を工夫すればかなりいいです。Accessとは関係ないですが、Windows2000 Serverをお使いなら、ターミナルサービスを利用するのも手かもしれません。
    • good
    • 0

要はLANの中に大量のデータが流れるからイカンのです。



例えば、フォームのレコードソースにテーブル名や、複数のレコードを返すクエリを指定していませんか?
フォームのレコードソースに、レコードを1件だけ返すSQLを書き、「次」ボタンで次のレコードを返すSQLをレコードソースに設定する、などとすると、ずいぶんと改善できます。

とにかく余計なデータをLANに流さない! ってことを念頭において開発するとそれなりに速度を稼げます。(それでも、データが溜まってくると遅くはなりますが・・・)

他には、内容が変化しないテーブルは積極的にクライアント側(フォーム等が格納されているDB)に置くようにします。

他にも色々と高速化のテクニックはあるのですが、こっから先は企業ヒミツ(^^;
    • good
    • 0

★DBのデータがサーバ(ネットワーク回線の向う側)になるので、通信回線レベルまで速度が落ちます。

10BASEだと、かなりストレスが来ます。これは仕方が無い事だと思います。LANの構成を見直してください(ダムHUBをS-HUBにする、1000BASEへ移行等、物理的対策になります)

★アクセスは、排他制御がイイカゲンなので、良く30~50分待たされたりします。(笑)
サーバがあるのでしたら、SQLServerや、ORACLEの方が良いのは事実ですが、難易度は跳ね上がります。

★ちょくちょく更新すると、トランザクションが溜まって、遅くなります
気休めかもしれませんが、アクセスのDBの最適化を行ってはどうでしょうか?

●DBの最適化
サーバで、Accessを起動。DBを呼び出す。
 (このとき、クライアントからアクセスしないほうが良い。)
ツール - データベースユーティリティー - 最適化/修復
から、できます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!