使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
マイクロソフトのHPにありました。
複数コアの CPU 環境で実行中の Access が応答なしになる
- 電子メール
- 印刷
現象
Access を実行中に、大量のデータを連続して処理するような処理を行った場合、Access の応答が無くなったり、異常終了してしまう場合があります。この現象は複数コアの CPU を搭載したコンピューター上での発生が確認されています。
原因
Access が使用するデータベース エンジン内の処理にて、レコード セットに対する処理を行うスレッドとメモリ管理を行うスレッド間の同期処理が、複数コア環境でのデータ処理量やタイミングに依存して正常に動作しなかった場合、データベース エンジン内部の情報に不整合が生じてしまうことがあります。その結果、応答なしや異常終了のような現象が発生します。
回避策
Access のプロセスを以下の方法で単一 CPU 上で動作させます。
タスク マネージャーを使用する方法
- Access を実行します。
- タスク マネージャー のプロセス タブで MSACCESS.EXE のプロセスを右****ックします。
- [関係の設定] メニューを選択します。
- [プロセッサの関係] ダイアログ ボックスで、任意の一つの CPU のみチェックをオンにし、その他の CPU のチェックをオフにします。
- OK でダイアログを閉じます。
start /affinity コマンドを使用する方法
Windows Server 2003、Windows Server 2008、Windows Vista、Windows 7 の場合、以下のコマンドを使用して制御することができます。
- コマンド プロンプトを起動します。
- 以下のコマンドを使用して Access を起動します。以下は CPU0 上でのみ Access を実行する例です。
start “Access” /affinity 1 <MSACCESS.EXE のフルパス>
MSACCESS.EXE のフルパスは、Office のバージョンや、実行している OS の種類、インストール時のカスタマイズによって異なります。
Office 2007 x86 版を、標準インストールで Windows 7 x86 版にインストールした場合、以下のパスを指定します。
“C:\Program Files\Microsoft Office\Office12\MSACCESS.EXE”