Accessデータベースの分割方法
  • (2017-11-14 07:06:04)

Accessは、100万レコードでもサクサク


使用中の受注管理db(Access)のテーブルの一つは、レコード数が100万件となり今後も増加が続く見込み。

100万件を超えてもサクサク動いているAccessは凄い。

しかし、Accessのデータサイズは噂によると2GBが限界らしい。

そこに至らなくても2GBはちょっと重い、個人的には500MB以下が理想。


Accessのメリット、ワンファイル


Accessのメリットの一つはテーブルもロジックも表示フォームもすべてワンファイルにまとまっているところ。

大企業のシステムを支えるようなデータベースなら、テーブルもロジックも個別に独立していた方がよいが、少人数でネット共有もないデータベースなら、ワンファイルは本当に管理が楽である。

私自身OracleやMySQLのような本格的なSQLデータベースの経験がないので、Accessとの比較はできないが、プログラムを書けない人には圧倒的にAccessの方が便利。


データベース分割


Accessには、ファイルサイズが巨大になったときの解決策も準備されている。そういうメニューがAccessにはある。これを実施すると全テーブルを別のdbファイルとして分割してくれる。

今回試したが、ネット共有の際には利用できそうな予感だったが、dbが分割され2個のファイルになることが苦痛だった。

私は、サイズを重くしている特定のテーブルだけを手動でエクスポート(分割)して「テーブルリンク」で接続する方式を試したが、ファイルが複数になる点、全体としてサイズが軽くなるわけでない点(むしろ、トータルでは増加する)で、あまり意味がないと感じた。

テーブルの外出しは、思いつくメリットは外出しdbを共有ファイルにしてAccessを複数のスタッフでネット共有(ロジック部分は個別に配布)することくらいか。


テーブル分割


重いテーブルは限られている。しかも、古いデータは滅多に使われない。

それならば、テーブル単体を分割してみようと考えている。

古いデータのほとんどは、年に数回使う程度。そこで現在のdbをバックアップとして保存し古いデータを調べる際は、バックアップdbにて行う。


(1)最新dbをバックアップとして保存

(2)バックアップ後、重いテーブルの過去3年以上の古いデータを削除


実際の運用で確かめる


テーブルデータのうち、過去3年以上のものは、滅多に使うことがないのに毎回、起動する度にメモリに読み込んだり、バックアップを取る度にこういうデータをコピーしなおさなくてよいので効率的だと思う。

デメリットは、dbの運用が若干複雑になること、それ以外は、今のところ思いつかない。



<< Amazonの露骨なプライムびいき< | >画像のぼかし >>
search
layout
admin

[▲page top]