会社で大量データの取り扱いや簡易的なシステムもどきを作成している Accessですが、容量制限 2GBを超えないように気を遣いながら使用しています。このため、2GB越えのエラーメッセージに遭遇することは滅多にないのですが、自宅にてエラーメッセージを再現してみました。
なお、本来は現在会社で頻発の「メモリ不足です」を再現する目的でしたが、容量制限 2GBとは関係ないようで、あわせて記載します。
容量 2GB超えのエラーメッセージ
簡易的にExcelにて大量データを生成しAccessにインポート。Accessにて追加クエリを繰り返したうえで、約150万件のデータを生成し、容量 2GB越えのエラーメッセージを発生させました。
▼容量 2GB超えのAccess ファイル。
1つのテーブルでの最大データ量は120万件(項目数 100)。Core i5-7300U、メモリ 12GB、PCIe SSDのPCで検証していますが、2GB超えとなった以降も 120万件のデータ表示に多少時間を要するものの、データ量の参照程度なら普通に動作しています。
▲▼2GB超えのエラーメッセージは上の画像・以下です。「容量制限 2GB越え」との表示はないため、初めて当メッセージを見た場合、他の重大なエラーが生じたものと勘違いしてしまいます。
データベースを開くことができません。アプリケーションで認識できなにデータベースであるか、またはファイルが破損しています。
容量 2GB近くでの対応
「容量 2GB近く」としていますが、私個人としての対応すべき容量の目安は 1.5GB、できれば1GBを超えると以下の対応を行うことが望ましいです。データ量が極端に多くなくとも、クエリなどを複数組んでいると、想像以上に容量は増えてしまいます。
▼手動での対応では、「データベースツール」の「データベースの最適化/修復」の押下により、容量を減少させることができます。
1.5GB近くともなると、それなりの時間を要するため(PCの環境などでも異なりますが、今回の事例では5分程度)、トイレなどの離席時に行うとよいでしょう。なお、該当するファイルを開いたままで対応できます。
▼「ファイル」の「オプション」「現在のデータベース」から、「閉じるときに最適化」を有効にし、該当のAccessを終了の都度、自動で最適化することもできます。
私としては、終了の都度、数分のロスタイムがあるために好みのではないのですが、Accessに詳しくないユーザーが使用する場合などに有効です。
「メモリ不足です」は、容量 2GB越えと関係なし?
会社で複数のクエリ・フォーム・マクロを組んでいる Access ファイルの一つでは(容量 1.5GB前後)、「メモリ不足です」のエラーメッセージが頻発しています。
今回の自宅での検証の本来の目的は、この「メモリ不足です」の再現・対応を図ることだったのですが、再現できず。
他サイトの記事を参照すると、『「メモリ不足です」のエラーメッセージは。容量 2GB問題によるもの』とするものもありますが、今回 再現できなかったことからも、私の見解では 容量2GBとは関係なし。Webでは、CPUの制限やメモリ使用率などの複数の原因が記載されていますが、原因は明確ではないとの認識です。
▼容量 2GB越えのファイルを操作しても、CPU・メモリ使用率ともにそれほど高くありません。このことからも、物理メモリは「メモリ不足です」のエラーメッセージと直接の関係はないとの認識です。
コメント