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