Windows アプリケーションを開発しました。バックエンド DB は Access 2007 です。Access 2007 の最大制限は 2GB であると聞きました。
今私の質問は、その制限を超えてサイズを増やす方法はありますか? アプリケーションのサイズとパフォーマンスを向上させるために複数のデータベースを作成する方法は?
Windows アプリケーションを開発しました。バックエンド DB は Access 2007 です。Access 2007 の最大制限は 2GB であると聞きました。
今私の質問は、その制限を超えてサイズを増やす方法はありますか? アプリケーションのサイズとパフォーマンスを向上させるために複数のデータベースを作成する方法は?
データを 1 つ以上の追加のデータベース ファイルに分割し、メイン アプリケーション データベースからサテライト テーブルへのリンクを作成できます。
この方法を使用すると、Access に保存されている 2 GB を超えるデータを使用できる可能性がありますが、最適な選択ではありません。落とし穴の 1 つは、異なる db ファイル内のテーブル間で参照整合性を強制できないことです。この事実だけでも、多くのアプリケーションにとってパーティショニングが開始点にならない可能性があります。
もう 1 つの問題は、一時的な作業スペースです。db エンジンがワークスペース用のディスク ファイルを必要とする場合、一時ファイルを使用します。また、その一時ファイルも最大 2 GB に制限されています。そのため、それぞれ 1.5 GB の 4 つの db ファイルに 6 GB のデータが分散していて、そのデータの 2 GB を超える作業を行う必要がある場合、ディスク容量の不足を訴えるエラー メッセージが表示される可能性があります。ディスクがいっぱいというわけではありません。これは、必要な一時ワークスペースが 2 GB を超えていることを意味します。
実際にそのパーティショニングを過去に一度行ったことがあるので、二度とやりたくありません。それだけの量のデータを管理するように Access に依頼するのは、まったく不合理です。私が頼んだほとんどのことを行うには、あまりにも多くの時間を待たなければなりませんでした。その作業をより有能なデータベース システムにオフロードする方がはるかに優れています。つまり、ストレージの総容量の問題だけでなく、ストレージ データベースが大規模なデータ セットをどれだけうまく処理できるかという問題もあります。Access アプリケーションは、クライアント サーバー データベースのクライアントになる可能性があります。
また、保管しているものを批判的に調べる必要があると思います。たとえば、画像を保存するのが好きな人もいます。私はしません。代わりに、画像ファイルへのパスを保存します。他のファイル タイプについても同様です。おそらく、BLOB を保存しなくても生活できることに気付くかもしれません。データベースのサイズを 2 GB の制限よりも快適に減らすことができ、Access をストレージとして使用し続けることができます。
17 年間に大量の入力があり、2 GB の制限に近づいていたデータベースでも同じ問題が発生しました。すでに分割されているため、そこでは何もできませんでした。最後に、最大のテーブルをいじってみると、非常に多数の JPG 画像が埋め込まれていることが問題であることがわかりました。たとえば、アクセスのテーブルに従業員や労働者の埋め込み画像を使用することが一般的でした。私が現在実装しているソリューションはうまくいっています。とにかくすべての写真はファイルにあるので、ハイパーリンクを使用して小さなコードで写真にリンクする新しいフォームを考案してください。バックエンドの埋め込み画像を削除します。DB コピーでこれを既にシミュレートしました。サイズが 1.6 GB から 300 MB 未満に縮小されるため、SQL に頼る前に、それを解決策として検討できます。
データベースの最大サイズは 2GB からシステム オブジェクトに必要なスペースを差し引いたものですが、1 つの回避策を試すことができます: データベースを分割することです。詳細については、次を参照してください。