重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

お尋ねします。

アクセスは初心者レベルです。
支払管理用データベース(アクセス2003)を作り、経理業務で運用しています。
いまのところの業務は支払請求書の入力・支払管理・検索などです。
使用するスタッフ数は5名で、それぞれがIDを持ち、それぞれのPCから使用できます。
DB本体は私のPCに置き、LAN経由で共有しています。

データ量としては毎日50~100件くらいの入力があります。
約2年使用してデータ量が増えてきたせいかアクセスの動きがおそくなってきたので、テーブルだけを私のPCに置き、クライアントにはフォームやクエリ、レポートなどのオブジェクトだけをフロントエンドデータベースとして分割しました。おかげでバックアップも簡単になりました。

5人が同時入力しても主キーの入力IDは問題なくインクルメントされていますが、肝心の「使用感」がいまいちなんです。
分割してスピードが速くなるはずなのに、それほど改善されないのです。
むしろ、テーブルをリンクで開くせいか、作業を開始するまでの「起動時間」が遅くなった・・・というクレームがありました。
もちろんそれぞれのPC環境にもよるでしょうが。

質問なのですが、
1.DBを分割してもそれほどの効果(処理速度)は期待できないのでしょうか?
2.アクセスで共有環境を構築するとき、DBの分割以外に効果的な方法はほかにありませんでしょうか? アップサイジングという話しを聞いたことがありますが・・・。

アドバイスよろしくお願い致します。

A 回答 (2件)

1.はい、そのとおりです。

MDBをフォームとデータに分割する事に対し、速度向上は見込めません。大抵の場合同じか遅くなります。

2.Access2003におけるアップサイジングというのは、データ部分をMDBからSQL Server2000に変更するというものだ。ただ、これも、データの安全性を高めるのが主目的で、速度の期待はひょっとしたらあまり期待できないかも知れない。いちおう、5人が同時に作業を行うという点ではMDBより速くなると思う。

 次に、アップサイジングの簡単な手順を示すので、やれそうだと思ったらチャレンジしてみては。ただ、もちろん現在のMDBはCD-Rに焼くなり、「絶対になくさないように」しよう。アップサイジングしたからもう要らな~いというのは早計だ。

(1)SQL Serverを買ってくる。またはMSDE2000ReleaseAというのをダウンロードしてくる。(ひょっとしたらAccess2003のCDに入っているかも)
(2)Windows Serverがあればそこに入れる方が良いが、無ければあなたのパソコンに入れる。MSDE2000の場合は、setup.iniというファイルをいじってから入れなければいけない。
(3)Access2003を起動して、新規作成→プロジェクト(新しいデータベース)
(4)hogenoge.adpというファイルを保存する。(ここでのhogehogeがデータベース名になる)
(5)接続文字列がどうのこうの聞かれるので、サーバならサーバのホスト名、自分のパソなら自分のパソ名で接続
(6)テーブルやフォームを「既存のMDBからインポート」する。

 これでOK。ううむ。書いていたら意外に難しいな。まぁ、これは余力があったらのチャレンジという事で。興味があったらまずはMSDE2000に関して勉強してみると良いだろう。
 もうすぐSQL Server 2005 Express Edition日本語版も配布されるようになる。
    • good
    • 0
この回答へのお礼

素早いアドバイスをありがとうございました。
現実に即したご説明で、本ではよくわからなかったところが理解できました。アップサイジングにチャレンジしてみようと思います。
もちろんバックアップをしっかりやってから、ですね。
その節はまたご指導お願いします。

お礼日時:2005/11/29 11:04

>1.DBを分割してもそれほどの効果・・


処理速度は早くなったりはしないと思います。
ずっと使っているとmdbファイルが肥大化してくるので各PCのAccessを終了させる際に常に最適化して終了をさせる。
バックエンドのmdbも同様に定期的に最適化する。
ツールのオプションの全般にある閉じる時に最適化するにチェックをすれば出来ます。
少しは早くなるかもしれません。
フォーム等を開く際に元になるテーブルの全てを参照するようなレコードソースのセットであれば必要なフィールドのみのレコードセットに変更する。とかその辺の変更くらいしかないのではと思います。
>2.アクセスで共有環境を構築するとき・・DBの分割以外に効果的な方法
現状で効果的な方法はそんなにないのではないかと思うのですが・・。
作業開始するまでの起動時間が遅くなった代わりにバックアップが簡単になったなどの利点もあるわけですから。
アップサイジングしてSQLServer等に移行してもAccessで作ったインターフェースで処理する場合、フォームのロード時に接続・アンロード時に解除をするようにしないとレスポンスが悪くなるなどがありますので構築も考えないといけない。ロジックによっても変わってきます。
    • good
    • 0
この回答へのお礼

大変参考になりました。ありがとうございました。
レコードセットを限定するのは効果ありそうですね!
SQL利用のまえにいろいろ考えなければいけないことがありますね。
またよろしくお願いします。

お礼日時:2005/11/29 13:07

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

関連するカテゴリからQ&Aを探す