2012-01-05 10 views
1

私はAccessデータベースをプログラミングしていますが、使用されるにつれてそのサイズが劇的に増加し、数百MBに増加することに気付きました。圧縮後、サイズは5MBに戻りました。どのように通常このサイズの増加を引き起こし、どのように私はそれを避けることができますか?データベースの膨らみを避けるには?

答えて

1

レコードを追加したり削除したりすることは、データベースの膨らみの原因の1つです。これが開発DBの場合は、vbaプロジェクトを繰り返しコンパイルして保存する際に、データベースの膨大化が避けられません。エンドユーザーデータベースで膨らみがはるかに少ないことがあります。

1

Accessデータベースで作業を行うと、ファイルのサイズが大きくなります。私は、朝のプロセスが実行されているときに、サイズがほぼ2GBに膨らむいくつかのデータベースを持っています。このプロセスは、データの挿入、更新、および削除を行います。

MS Accessで作業するときに重要なことの1つは、コンパクトで修復することです。これにより、データベースのサイズが縮小されます。

私はDBが何百ものMBに成長することについて心配しませんが、これはまだAccessにとっては小さいです。

1

実際に5MBから数百MBに増えて5MBに戻すことができれば、多くのレコードを挿入して削除していると言われる人もいます。これは通常、一時テーブルを作成する必要があるためです。

ほとんどの場合、一時テーブルは技術的には必要ではなく、クエリをクエリするか、動的SQLを使用して削除することができます。これを行うことができない場合は、リンクしている別の一時データベースを作成する価値があります。

各ユーザーが独自の一時データベースのコピーを持ち、セッションの開始時または終了時に破棄されることに注意することが重要です。

1

また、行ロックをオフにすることもできます。私は約5メガバイトのサイズのファイルとプロセスを持っています。 単純なアップデートを実行すると、それは125メガに盛り上がります。行ロックを無効にすると、ファイルは更新されずにまったく増殖しません。 行のロックを無効にしたい場合は、膨大な時間がかかることがあります。あなたはオフにしたいオプションは、このいずれかになります。 [ファイル] - > [オプション]> [クライアントの設定、その後、チェックを外し

[x]は

enter image description here

アクセスをロックレコードレベルを使用してデータベースをオープン真の行ロックはありませんが、データベースページロックと呼ばれるものがあります。ラウンドアバウトで行ロッキングをオンにすると、Accessはすべてのレコードを1つのデータベースページのサイズに展開します。その結果、膨大な膨大化が発生します。上記のオプションを無効にしてみてください。 (この設定変更を有効にするには、Exit + Accessを再起動する必要があります)。

関連する問題