私はAccessデータベースをプログラミングしていますが、使用されるにつれてそのサイズが劇的に増加し、数百MBに増加することに気付きました。圧縮後、サイズは5MBに戻りました。どのように通常このサイズの増加を引き起こし、どのように私はそれを避けることができますか?データベースの膨らみを避けるには?
答えて
レコードを追加したり削除したりすることは、データベースの膨らみの原因の1つです。これが開発DBの場合は、vbaプロジェクトを繰り返しコンパイルして保存する際に、データベースの膨大化が避けられません。エンドユーザーデータベースで膨らみがはるかに少ないことがあります。
Accessデータベースで作業を行うと、ファイルのサイズが大きくなります。私は、朝のプロセスが実行されているときに、サイズがほぼ2GBに膨らむいくつかのデータベースを持っています。このプロセスは、データの挿入、更新、および削除を行います。
MS Accessで作業するときに重要なことの1つは、コンパクトで修復することです。これにより、データベースのサイズが縮小されます。
私はDBが何百ものMBに成長することについて心配しませんが、これはまだAccessにとっては小さいです。
実際に5MBから数百MBに増えて5MBに戻すことができれば、多くのレコードを挿入して削除していると言われる人もいます。これは通常、一時テーブルを作成する必要があるためです。
ほとんどの場合、一時テーブルは技術的には必要ではなく、クエリをクエリするか、動的SQLを使用して削除することができます。これを行うことができない場合は、リンクしている別の一時データベースを作成する価値があります。
各ユーザーが独自の一時データベースのコピーを持ち、セッションの開始時または終了時に破棄されることに注意することが重要です。
また、行ロックをオフにすることもできます。私は約5メガバイトのサイズのファイルとプロセスを持っています。 単純なアップデートを実行すると、それは125メガに盛り上がります。行ロックを無効にすると、ファイルは更新されずにまったく増殖しません。 行のロックを無効にしたい場合は、膨大な時間がかかることがあります。あなたはオフにしたいオプションは、このいずれかになります。 [ファイル] - > [オプション]> [クライアントの設定、その後、チェックを外し
[x]は
アクセスをロックレコードレベルを使用してデータベースをオープン真の行ロックはありませんが、データベースページロックと呼ばれるものがあります。ラウンドアバウトで行ロッキングをオンにすると、Accessはすべてのレコードを1つのデータベースページのサイズに展開します。その結果、膨大な膨大化が発生します。上記のオプションを無効にしてみてください。 (この設定変更を有効にするには、Exit + Accessを再起動する必要があります)。
- 1. g ++テンプレートインスタンシエーターはどのくらいスマートです(テンプレートの膨張を避ける)
- 2. TDD中に膨大な量のテストデータを生成する必要性を避けるには? (データベースを嘲笑)
- 3. 関連付けられた関係オブジェクトの読み込みを避ける
- 4. スタックサイズの変更を避け、C#でスタックオーバーフローを避けるには
- 5. 最初に.nibファイルの隠しテーブルビューの読み込みを避けるには?
- 6. フォントフェイスの読み込み遅延を避ける
- 7. テーブルマージンからのオーバーフローを避ける
- 8. 膨大な量のデータを扱うデータベース
- 9. データベースのつぶやきをアーカイブする(重複を避ける)
- 10. htmlフォームをmysqlデータベースに投稿してデータベース攻撃を避ける
- 11. CommandLine :: Applicationは私の例外をメインで呑み込み、避ける方法は?
- 12. プレーンファイルのキーを避けるには?
- 13. mysqlクエリのfilesortを避けるには?
- 14. Cometチャットのデッドメッセージを避けるには?
- 15. $ location.urlのURLデコードを避けるには?
- 16. WTKのAPIアクセスアラートを避けるには
- 17. LinqToSql - データベースへの過度のクエリを避ける
- 18. データベースのxmlフィールドの解析を避ける
- 19. キーボードから来るウィンドウビューを避けるには?
- 20. ポップアップドロップダウンリスト - 複数のデータベース呼び出しを避ける
- 21. InputStreamからNettyコピーを避ける
- 22. マウスオーバーでちらつきを避ける
- 23. 膨らんだビューと要素を膨らますと
- 24. データベースの検索を避けるためにハッシュの配列を検索する
- 25. Entity Framework:Discriminatorカラムをテーブルから避けるには?
- 26. PowerShell:リモートコマンドの実行とStdErrorへの書き込み。エラーメッセージを避けるには?
- 27. ユニバーサルルールCSSアスタリスク(*)を避けるには?
- 28. UITableViewで 'double select'を避けるには?
- 29. View.getDrawingCache()でnullポインタを避けるには?
- 30. Google Mockでポインタを避けるには?