2015年2月11日水曜日

Accessで最適化

データベースは定期的に最適化する必要があります。
通常リレーショナルデータベース管理システムでは、
各テーブルからレコードを削除する際、実際にそのレコードを削除するのではなく
削除したことにするだけでお茶を濁します。
レコードの編集も、更新前のレコードを削除したことにして、
更新後のレコードを新たに追加します。
これは処理の高速化のための措置です。
しかし、削除したことにしたレコードはそのまま残っており、
データベースの実体が大きくなるという副作用があり、
それによりレコードの検索が遅くなってしまいます。
そこで定期的に最適化を行い、削除したことにしているレコードを本当に消す必要があります。
もちろん最適化はそれ以外の処理もしています。

大きなシステムでは夜間バッチ処理で最適化したりしますが、
小さなシステムでもやはり最適化は必要で、
個人で使うようなMicrosoft Accessも例外ではありません。

Access 2007でなら、開いたデータベースファイルについて
左上のOfficeアイコンのメニューから[管理]-[データベースの最適化/修復]を実行するだけです。
ただし、ファイルサーバに置いているデータベースについては他のユーザが開いていないときにしてください。
また最適化前にはファイルをコピーしてバックアップしておきましょう。
実は最適化前のファイルをそのまま維持する方法もあり、
データベースを開いていないときに先のメニューを実行すると、
最適化元データベースファイルを選ぶよう促されるので、
新しい最適化先データベースファイルを指定して新規作成できます。

定期的に最適化するのを忘れてしまいそうなら、
ファイルを閉じる度に最適化するように設定することもできます。
Officeアイコンのメニューから[Accessのオプション]を開き、
[カレント データベース]の[アプリケーション オプション]にある
[閉じるときに最適化する]にチェックを入れておくだけです。
閉じるのに時間がかかる可能性があるので個人的にはおすすめしませんが。
バックアップとセットで最適化する運用にするといいかもしれませんね。

0 件のコメント:

コメントを投稿