Accessで2GB以上のデータベースを扱う方法


MS Accessを使って 大量データを扱うツールを作ろうとしたときに、Accessの2GB問題で苦戦したため対処法を記載します。あくまで、Accessだけでどうにかツールを作りたい場合の対処法です^^;
(MySQLなど別のデータベースにデータを格納しAccessから接続するなど、Accessに閉じなければ他にも対処法はあるかと思いますが)

Accessファイルは2GBが上限

1つのAccessファイルは2GBが上限となります。そのため、大量データを1つのAccessのデータベースに入れるとファイルが2GBを超えてエラーとなってしまいます。

複数のAccessファイルにデータを分割してリンクテーブルで参照することで対処

Accessには他のAccessファイルのテーブルを参照する「リンクテーブル」という機能があります。これを使い、ツール本体にはデータを格納せず、複数の別ファイルにデータを分割して格納し、本体からリンクテーブルで参照することで、2GB以上のデータを扱うことができます。図にすると以下のようなイメージです。

制約として、1つ1つのテーブルリンクは別テーブルとなるため、1つのSQLでまとめて検索できません。そのため、例えば1つのテーブルに格納すべき4GBのデータを2つのアクセスファイルに分割すると、2つのテーブルにアクセスしてデータを取得する必要があります。(実装の考慮が必要)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です