<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
 MS-Access2002チョ〜入門部屋>MS-Accessを使いこなすために・・
  (←別ウィンドウでサブメニュー)



16.データベースの最適化

さて・・・いろいろと見てまいりましたが、いかがでしょう?
いろいろとやらなくちゃならないことがありますよね。
もちろん、今までお話してきたことだけでは、皆さんがこれから作ろうとしているデータベース完成には追いつかないかもしれません。でも、どんな感じか、雰囲気はつかんでいただけたんじゃないかなって思うんですけど・・・。

いろんな機能があります。
いろんなデータベースを作ることができます。
いろいろ工夫できます。
でも、骨組みとなるのは、「テーブル」です。ここからデータを取り出したりココにデータを入力したりする仕組みを中心に、クエリとかフォームとかレポートとかを工夫して作っていくのです。
そこんとこさえしっかり理解できていれば、きっと、「皆さんが作ろうとしているデータベース」と「MS-Accessの中の機能」とが結びついていきますよ。



では、このコーナーのおしまいに・・・。
データベースの運用に関わってきそうなお話を二つほどいたしますね。
よかったら読んでってください。

それでは、MS-Accessを一旦終了して、このMDBファイルを、客観的に見てみましょう。
MS-Accessのウィンドウの閉じるボタンをクリックして、終了させちゃってください。

で、このMDBファイルを見てみてください。
フォルダの中を開いて見てもいいし、エクスプローラとかで見てみてもいいですよ。

MDBって、↑閉じてるときはいわゆるこういうアイコンの状態ですよね。
もし、このMDBを開いている場合は、同じフォルダの中にLDBっていう拡張子のついたこういうファイルが自動的にできます。このファイルは、MDBファイルを閉じると自動的に消えてなくなります。
右のが、LDBファイルのアイコンです。

こうなってると、↑だれかがこのMDBファイルを開いてる、っていうことになるわけですね。
とても小さなファイルサイズのファイルなんですが、俗に言う「ロックファイル」というやつで、このMDBが使用中であることを記しています。特に必要ないかも分かりませんが、いちおう、LDBっていう種類のファイルもあるのだということ、なんとなく覚えておいてください。



で、今はどうやら同じフォルダの中にLDBファイルがないな・・・MDBは閉じてますからね。
パソコンのファイルって、ファイルを閉じているときでないと、ファイル名を変更したり、ファイルを削除したり、ファイルをコピーしたりすること、できませんよね。
DBファイルのサイズを見てみると、うーん、けっこうなファイルサイズだな。
ええと、2740KBってことは、2.7MBか。。。写真画像とか取り込んだしなぁ・・・。

みなさんのは、わたしのよりもうちょっとファイルサイズ小さいかもしれないですね。
ファイルサイズ、どれくらいになったか、確認してみてくださいね。
でも・・・この時点でのMS-AccessのMDBファイルのファイルサイズって、必ずしも妥当な大きさとは限らないからなんです。



今までの操作の中で何度か、テーブルの中のレコードを削除しましたよね。
レコードを削除すれば、レコードの件数は減りますが、ファイルサイズは減らないんです。削除する前のままです。
わたしは、このページを作成するために、何度も何度も同じ操作を繰り返しているので、みなさんのMDBファイルよりもファイルサイズが大きいと思います。
削除した後レコード追加してまたそれを削除して・・・って、何度も繰り返しているから、ってことなんです。

MS-Accessは、レコード単位でデータを扱います(正確にはページ単位というのでしょうか)。
テーブルにデータを追加して、テーブルを保存するのではなくて、テーブルに1件データを追加したらそれでもう保存とかしなくても追加されたことになりますよね。ひとつのテーブルとか、MDBファイル全体でデータを保存していくわけではないのです。RDBってのはそういうもんです。
そういうRDBの基本的な構造を「パソコンで手軽に実現」させるために、MDBっていう「パソコンファイル」としてデータベースを作っていく関係上、レコードを削除してもファイルサイズは自動的には小さくならないのはしょうがないんです。
パソコンファイルの形で、RDBの仕組みを実現させているツールなんかにはよく見られる傾向かもしれないですね。

基本的には、ほっといても問題ないのでしょうが、レコードの削除/追加が激しいデータベースの場合は、どんどんファイルサイズが大きくなってってしまうわけですので、のんきなことは言ってられません。
では、どうしたら、妥当なファイルサイズになってくれるんでしょう。
そういうときは「データベースの最適化」をする必要があるのです。

操作としてはMS-Accessのメニューバーの[ツール]→[データベースユーティリティー]→[最適化/修復]を選びます。

これで、このデータベースは「最適化」され、妥当なファイルサイズになるのです。
ちょっとやってみますね。
皆さんも、後で最適化してみてください。

メニューを選ぶと、しばらくの間、画面の左下の方になにやらメッセージが表示されて・・・。
特に何ごともなく、終わったみたい。
ファイルサイズを確認してみると・・・。

ふうん。ちょっと小さくなったかな・・・。
っていうか、別に小さくなったわけじゃなくて、これが妥当なファイルサイズなんです。
別に「データベースの最適化」をやったからファイルサイズが小さくなったってわけじゃないんですよ。
もともとのファイルサイズが、これだったんです。



では、このデータベースの最適化とはいったい何をしているのでしょう。

具体的には、

 1)db1っていう名前でmdbファイルのコピーを作る(db1.mdbがすでに存在している場合はdb2.mdb)
 2)db1.mdbの中に、今のmdbファイルから全部のオブジェクトを移す
 3)今のmdbを閉じる
 4)今のmdbを削除する
 5)db1.mdbを今のmdbの名前にする

というようなことをやってます。
つまり、そのmdbそのものを最適化しているというよりも、新しいmdbを作りつつ、って感じになります。
それはなぜか、というと・・・さっきもちょっとお話しましたけど、パソコンのファイルって、開いてるときに名前を変えたりコピーしたり削除したりできないですよね。最適化も、できないんです。「開いているMDBファイルを最適化することはできない」んですよ。
なので、こんなサーカスみたいなことをやってるわけなんです。

なので、100MBのmdbファイルを最適化するためには、ディスクの容量があと100MBは空いてないとなりません。
一時的に、ほぼ同じMDBがふたつになるわけなので、最適化するために2倍の場所をとるわけなんですね。
まあ、いっぱい空いてるに越したことはございませんが。。。。
っつうことは2GBのmdbを最適化するには、ディスク容量がさらにあと2GB必要ってことで・・・。

だから、ひとつのmdbファイルがあんまりばかでかくならないように考えた方が得策なんですよ。こういう面からも・・・。
長いこと最適化せず、ほんとは600KB程度の情報しか入ってないのになんか500MBくらいある・・・なんていうMDBファイルは、やっぱりトラブルも起こりやすいです。
わけのわかんないエラーとか出ちゃって原因究明が難しくなることもありますよ。
そりゃそうですよね。ファイルの中のほとんどが「空洞」の、たぷたぷ状態ファイルなんですから・・・。
健康のためにはダイエットしないと。

しかしながら・・・。
「データベースの最適化」は、必ずやらないとならない作業ではあるんですが、上のようにmdbを複製したり削除したりと、けっこうな荒業です。あんまり神経質に毎日やるのも、それはそれでトラブルの原因につながるかもしれません。
多分、100MBくらいの大きさになっちゃうと、最適化するのも時間がかかると思うんですよね。最適化している最中に、たとえば電源が落ちちゃったりとか、PCがハングアップしちゃったりしたら、多分そのファイルは・・・おしゃかになっちゃうんじゃないでしょうか。必須作業ですが、デリケートな作業でもあること、心にとめておいてください。

1ヶ月に1ぺんとか、半年に1ぺんとか、様子を見ながら定期的に、皆さんの目で確認しながら手作業で最適化することをお奨めします。めんどくさいからといって最適化を自動化しようとか、最初のうちは考えないことです。まあ、気持ちはわからないでもないですけれどね・・・。
MS-Accessで作ったデータベースの運用になれてこられたら、「じゃあ、自動化してみようか・・・」って少しずつ検討してってみてください。自動化する方法を紹介しているサイトさん、けっこうありますよ。
でもそれは、MS-Access自体に慣れてから、がよろしいかと思います。

レコードを大量に削除するようなmdbでなければ、そんなに気にする必要はないと思います。勘違いしてはならないのは、mdbのファイルサイズが膨れていくのではないということです。1000件入力して、1000件削除した場合、ファイルサイズは最初増えますが削除しても元に戻らない。そういうことですよ。
最近は、PCのパワーもありますし、ファイルサイズの大きなファイルをいっぱい持っててもトラブルは少ないのかもしれません。
でも、データベースの最適化を怠ったばかりに、せっかく作ったmdbファイルが開かなくなっちゃったりあきらめざるを得なくなったりしたってお話、ずいぶんと耳にしますよ。原因は他にもあるかもしれませんが、最適化することでmdbの中はきれいになりますから、とにかく、ときどき、目で確認しながら最適化するようにしていきましょう。

「どれくらいで最適化すれば大丈夫ですか?」なんて、周りの人に聞いちゃだめですよ。
こういうことを、他人任せにしてはいけません。
「最適化の作業を」、ということではありません。
どれくらいの期間で最適化したらいいのか検討するということを、他人任せにしてはいけない、っていうことで・・・。
ファイルサイズとか気にしながらテスト運用してみて、様子を見て検討してくださいね。