
お尋ねします。
アクセスは初心者レベルです。
支払管理用データベース(アクセス2003)を作り、経理業務で運用しています。
いまのところの業務は支払請求書の入力・支払管理・検索などです。
使用するスタッフ数は5名で、それぞれがIDを持ち、それぞれのPCから使用できます。
DB本体は私のPCに置き、LAN経由で共有しています。
データ量としては毎日50~100件くらいの入力があります。
約2年使用してデータ量が増えてきたせいかアクセスの動きがおそくなってきたので、テーブルだけを私のPCに置き、クライアントにはフォームやクエリ、レポートなどのオブジェクトだけをフロントエンドデータベースとして分割しました。おかげでバックアップも簡単になりました。
5人が同時入力しても主キーの入力IDは問題なくインクルメントされていますが、肝心の「使用感」がいまいちなんです。
分割してスピードが速くなるはずなのに、それほど改善されないのです。
むしろ、テーブルをリンクで開くせいか、作業を開始するまでの「起動時間」が遅くなった・・・というクレームがありました。
もちろんそれぞれのPC環境にもよるでしょうが。
質問なのですが、
1.DBを分割してもそれほどの効果(処理速度)は期待できないのでしょうか?
2.アクセスで共有環境を構築するとき、DBの分割以外に効果的な方法はほかにありませんでしょうか? アップサイジングという話しを聞いたことがありますが・・・。
アドバイスよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
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日本語版も配布されるようになる。
素早いアドバイスをありがとうございました。
現実に即したご説明で、本ではよくわからなかったところが理解できました。アップサイジングにチャレンジしてみようと思います。
もちろんバックアップをしっかりやってから、ですね。
その節はまたご指導お願いします。
No.2
- 回答日時:
>1.DBを分割してもそれほどの効果・・
処理速度は早くなったりはしないと思います。
ずっと使っているとmdbファイルが肥大化してくるので各PCのAccessを終了させる際に常に最適化して終了をさせる。
バックエンドのmdbも同様に定期的に最適化する。
ツールのオプションの全般にある閉じる時に最適化するにチェックをすれば出来ます。
少しは早くなるかもしれません。
フォーム等を開く際に元になるテーブルの全てを参照するようなレコードソースのセットであれば必要なフィールドのみのレコードセットに変更する。とかその辺の変更くらいしかないのではと思います。
>2.アクセスで共有環境を構築するとき・・DBの分割以外に効果的な方法
現状で効果的な方法はそんなにないのではないかと思うのですが・・。
作業開始するまでの起動時間が遅くなった代わりにバックアップが簡単になったなどの利点もあるわけですから。
アップサイジングしてSQLServer等に移行してもAccessで作ったインターフェースで処理する場合、フォームのロード時に接続・アンロード時に解除をするようにしないとレスポンスが悪くなるなどがありますので構築も考えないといけない。ロジックによっても変わってきます。
大変参考になりました。ありがとうございました。
レコードセットを限定するのは効果ありそうですね!
SQL利用のまえにいろいろ考えなければいけないことがありますね。
またよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
型 varchar から型 numeric へ...
-
別のACCESSデータベースのテー...
-
オラクルのLONG RAW型のテーブ...
-
ハイフン無しの電話番号データ...
-
エクセルの重複データの曖昧検索
-
データベースを利用したアプリ...
-
【ACCESS】複数のパソコンから...
-
DBとテキストファイルの比較
-
SQLって何のためにあるのでしょ...
-
初心者です。Accessを使って、...
-
どういう専門学校へいくべきで...
-
データベースの最適化をマクロ...
-
クエリをキャンセルしたいので...
-
AndroidからのAccessデータベー...
-
バッファプールって?
-
ODBC経由の処理が遅い
-
JavaとOracle Javaって何が違う...
-
構文エラー:演算子がありませ...
-
VBAかSQL?
-
Paradoxについて教えて下さい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のACCESSデータベースのテー...
-
型 varchar から型 numeric へ...
-
ハイフン無しの電話番号データ...
-
エクセルのフォームについて(...
-
オラクルのLONG RAW型のテーブ...
-
リスト形式の表とデータベース...
-
エクセルの重複データの曖昧検索
-
ACCESSで条件付き書式の設定方法
-
データのインポートに失敗します。
-
ODBCを使わないでExcelへ連携
-
【パフォーマンス】ファイル読...
-
DBとテキストファイルの比較
-
カンマ区切りで格納するカラム...
-
【ACCESS】複数のパソコンから...
-
データベースソフトのTCARDにつ...
-
コンピュータ用語、データベー...
-
大量の名簿の管理
-
自由研究について
-
SQLを使いこなしている人が ETL...
-
POSTGRESQLにEXC...
おすすめ情報