< | >

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]