Accessをシングルコアで使う方法

 当院の電子カルテはDynamicsというものを使っています。そのDynamicsはAccessというデータベースソフトを使っています。Accessは古くからあるソフトなので、最近の複数のコアがあるCPUだとどうも具合が良くないようです(Windows8以降では解決してるような感じがします)。

複数コアの CPU 環境で実行中の Access が応答なしになる

 Accessを愛護的に使うためには、Accessをシングルコアで動かす必要があります。

 一つはBIOSレベルでシングルコアで起動する方法です。BIOSをいじる方法はパソコンによって違うので、取扱説明書を御覧ください。簡単にできる方法ですが、OSを始め全てのソフトがシングルコアで動くため、他のソフトの動きが遅くなるという弱点があります。

 もう一つが、Accessを起動後にAccessだけをシングルコアにする方法です。タスクマネージャーのプロセスから「関係の設定」を選び、CPUを一つだけにします。ただこれだと、Accessを起動するたびに再設定しなくてはいけません。レジストリをいじる方法もありますが、怖くて手が出せません(笑)

 そこで、起動するときからシングルコアにする方法を考えてみます。ショートカットを作るのです(参考:プログラムの実行に使用するCPUを限定させる

 当院のショートカットはこのようになっています。CPUのコアを選択する場合は、 /affinity 後の数字を変えてください。

C:\windows\System32\cmd.exe /c start /high "Access" /affinity 1 c:\Progra~2\Micros~1\Office14\MSACCESS.EXE …d_client\DYNA_cnt.mdb

(…はクライアントダイナのフォルダ)
"Access"は何でもよくて、""でもいいです。

 Accessを実行するためのファイルパスにチルダ(~)が入っている理由は、ファイルパスのチルダの意味を見てください。

 その他、起動するプログラムの優先度を変更する方法(2)cmd.exe /c の引数について (半角スペース と " の微妙な関係)も御覧ください。

 ただし、XPでは使えないようで、Windows Vista・Windows7では問題ないようです。

 いずれにせよ必ずバックアップを取ってから、なおかつ仕事が終わってから行うようにしてください。

 自己責任でよろしくお願いします。

a:16984 t:3 y:5