データベース ファイルは、使用するにつれて急速に大きくなり、パフォーマンスが低下する場合があります。 また、破損したり破損したりすることもあります。 [ データベースの圧縮と修復 ] コマンドを使用すると、これらの問題を回避または修正できます。 最適化プロセスではデータは圧縮されず、不要な領域が削除され、データベース ファイルのサイズが小さくなります。 [データベースの最適化/修復] コマンドを使い、データベースのパフォーマンスを改善することもできます。
ヒント:データベースを分割 すると、データベース ファイルの破損を防止し、ユーザーが直接アクセスしない別のファイルにデータを保持することで、データの損失を抑えることができます。
|
目的に合ったトピックをクリックしてください データベースを圧縮して修復する方法 — 始める前に — データベースを閉じるときにデータベースを圧縮して修復する — 開いているデータベースを圧縮して修復する — 開いていないデータベースを圧縮して修復する - Access からプロンプトが表示されたら、壊れたデータベースを圧縮して修復する |
データベースを圧縮して修復する必要がある理由 — データベース ファイルは使用すると増加します — データベース ファイルが破損する可能性があります |
|---|
データベースを圧縮して修復する方法
データベースを圧縮および修復するには、いくつかの方法があります。 一般的な方法は、データベースを閉じるときに自動的に圧縮して修復することです。 また、データベースを開いているとき、および開いていないデータベース上で、[ データベースの圧縮と修復 ] コマンドを手動で実行することもできます。
始める前に
圧縮および修復操作を開始する前に、次のアクションを実行します。
- データベースのバックアップを作成する 修復処理中に、破損したテーブルから一部のデータが切り捨てられることがあります。 バックアップからこのデータを修復できる場合もあります。 通常のバックアップ方法に加えて、[ データベースの圧縮と修復 ] コマンドを使用する直前にバックアップを作成する必要があります。 詳細については、「 バックアップと復元プロセスによるデータの保護」を参照してください。
-
データベースへの排他的アクセス権を取得する 圧縮および修復操作では、データベース ファイルへの排他的アクセス権が必要です。操作によって他のユーザーが中断される可能性があるためです。 最適化と修復の操作を実行する予定を他のユーザーに通知し、その間はデータベースの使用を控えてもらうようにします。 詳細については、「 既存の Access データベースを開く」を参照してください。
データベースの使用を控えてもらう時間をユーザーに伝えます。 最適化と修復の操作を定期的に実行している場合は、処理に要した時間を記録しておきます。 そうすることで、必要な時間を的確に予測でき、データベースの使用を控えてもらう時間をユーザーに指示できます。 - データベースに対する十分なファイルのアクセス許可を取得する 十分なアクセス許可がなく、データベースを圧縮して修復する必要がある場合は、システム管理者に問い合わせてください。 詳細については、「 Windows のネットワーク経由のファイル共有の変更」を参照してください。
データベースが閉じるときに自動で最適化および修復する
[閉じるときに最適化する] データベース オプションをオンにすると、データベースが閉じるときに最適化と修復を自動で行うことができます。 このオプションの設定は、現在開いているデータベースにのみ適用されます。 このオプションは、自動的に圧縮して修復するデータベースごとに個別に設定します。 この場合、データベースが一時的に使えなくなることから、複数のユーザーが使うデータベースでは、このオプションを設定しないことをお勧めします。
- [ファイル] > [オプション] を選択します。
- [Access のオプション] ダイアログ ボックスで、[現在のデータベース] を選択します。
- [アプリケーション オプション] の [閉じるときに最適化する] チェック ボックスをオンにします。
- [OK] を選択します。
- オプションを有効にするには、データベースを閉じて再度開きます。
開いているデータベースを手動で圧縮して修復する
- [ファイル>情報]>[データベース & 修復の圧縮] を選択します。
Access は、圧縮および修復されたデータベースのコピーを同じ場所に作成します。
開いていないデータベースを手動で圧縮して修復する
Access データベースを直接開くことができない場合は、この手順を実行します。
- データベース ファイルを使用しているユーザーが他にいないことを確認します。
- Access を起動します。
- [テンプレート] ページで、[ 空のデータベース] をダブルクリックします。
- [ファイル>閉じる] を選択します。
- [ データベース ツール>データベースの圧縮と修復] を選択します。
- [最適化元データベース] ダイアログ ボックスで、最適化と修復を行うデータベースを見つけ、ダブルクリックします。
Access は、圧縮および修復されたデータベースのコピーを同じ場所に作成します。
Access でプロンプトが表示されたら、壊れたデータベースを圧縮して修復する
破損しているデータベース ファイルを開こうとしたときに、データベースを圧縮して修復するように Access から求められた場合は、[ はい] を選択します。 次の 2 つのことが考えられます。
- 破損したファイルの修復が完了すると、修復が成功した旨のメッセージが表示され、データベースの内容をチェックして不備がないことを確認するよう求められます。
- Access が部分的にしか成功しない場合は、 MSysCompactErrors という名前のシステム テーブルで修復できなかったデータベース オブジェクトが追跡されます。 Access によって MSysCompactErrors テーブルがデータシート ビューに表示されます。 データベースが破損する前に以前のバックアップがあった場合は、MSysCompactErrors テーブルを使用して、修復されたデータベースにインポートするオブジェクトを決定できます。 システム テーブルを表示するには、ナビゲーション タイトル バーを右クリックし、[ ナビゲーション オプション] ダイアログ ボックスで [ システム オブジェクトの表示] を選択します。
データベースを圧縮して修復する必要がある理由
この概要では、[データベースの最適化/修復] コマンドを使用して、使用に伴ってファイルのサイズが大きくなり、ファイルが破損するなど、データベースに影響が及ぶような問題を防ぎ、修正する方法について説明します。
データベース ファイルは使用に伴ってサイズが大きくなる
データの追加や更新、デザインの変更に伴って、データベース ファイルのサイズは大きくなっていきます。 新しいデータの追加だけでなく、次のような原因もあります。
- Access では、さまざまなタスクを実行する目的で、一時的な隠しオブジェクトが作成されます。 この一時オブジェクトが不要になった後でもデータベース内に残ることがあります。
- データベース オブジェクトを削除しても、そのオブジェクトが使用していたディスク領域は自動では解放されません。オブジェクトを削除しても、データベース ファイルはそのディスク領域を引き続き使用します。
データベース ファイル内に一時オブジェクトや削除済みオブジェクトの残骸が増えてくると、パフォーマンスが低下することがあります。 オブジェクトを開いたりクエリを実行したりする時間が通常より長くなるなど、一般的な操作が全般に遅くなったように感じられます。
データベース ファイルは破損することがある
状況によっては、データベース ファイルが破損することがあります。 データベース ファイルをネットワーク経由で共有し、複数のユーザーが同時にファイルを直接編集する場合、まれではありますが、そのファイルは破損するリスクがあります。 ユーザーが長いテキスト フィールドのデータを頻繁に編集する場合、破損のリスクはやや大きくなり、時間の経過とともにリスクが大きくなります。 このリスクを軽減するには、[データベースの最適化/修復] コマンドを使用します。
多くの場合、この種類の破損は Visual Basic for Applications (VBA) モジュールの問題が原因で発生し、データ損失のリスクはありません。 ただし、このような破損は、VBA コードの損失やフォームが使用できなくなるなど、データベース設計が破損するリスクにつながる可能性があります。
まれに、データベース ファイルの破損によってデータが失われる場合もあります。 通常、失われるのは、単一のユーザーが行った最後の操作、つまりデータに対する単一の変更に限られます。 ユーザーがデータの変更を開始した後で、たとえばネットワーク サービスの停止によってその変更が中断された場合、Access は、そのデータベース ファイルが破損したものとしてマークします。 このファイルは修復可能ですが、修復が完了した後で一部のデータが失われている場合があります。