Frage

Wir verteilen eine Anwendung, die eine MS Access MDB-Datei verwendet. Jemand hat bemerkt, dass nach der Datei in MS Access öffnet die Dateigröße viel schrumpft. Das deutet darauf hin, dass die Datei ein guter Kandidat für die Verdichtung ist, aber wir liefern nicht die Mittel für unsere Nutzer, das zu tun.

Also, meine Frage ist, ist es wichtig? Kümmert es uns? Welche schlechte Dinge können passieren, wenn unsere Nutzer nie die Datenbank komprimieren?

War es hilfreich?

Lösung

Neben der Herstellung Ihrer Datenbank kleiner, wird es die Indizes auf Tabellen neu berechnen und Ihre Tabellen defragmentieren, die den Zugang schneller machen kann. Es wird auch keine Unstimmigkeiten finden, die nie in der Datenbank, aber vielleicht, aufgrund von Fehlern oder Abstürzen in Access.

geschehen soll

Es ist nicht ganz ohne Risiko, obwohl - ein Fehler in Access 2007 würde Ihre Datenbank während des Prozesses gelegentlich löschen.

So ist es im Allgemeinen eine gute Sache zu tun, aber es mit einer guten Backup-Routine paaren. Mit der Sicherung vorhanden ist, können Sie auch von irgendwelchen ‚nicht behebbarer‘ kompakt und Reparaturprobleme mit einem Minimum an Datenverlust wiederherzustellen.

Andere Tipps

Stellen Sie sicher, kompakt und die Datenbank regelmäßig reparieren, vor allem, wenn die Datenbank-Anwendung Erfahrungen häufig Rekord Updates, Löschungen und Einfügungen. Dies wird nicht nur halten diese die Größe der Datenbankdatei auf das Minimum - die Datenbankoperationen beschleunigen helfen und Netzwerk-Kommunikation - es führt Datenbank Housekeeping auch, die für die Stabilität Ihrer Daten von noch größerer Vorteil ist. Aber bevor Sie die Datenbank komprimieren, stellen Sie sicher, dass Sie eine Sicherungskopie der Datei zu machen, falls etwas schief geht mit der Verdichtung.

Jet verdichtet eine Datenbank den Inhalt in der Datei neu zu organisieren, so dass jedes 4 KB „Seite“ (2 KB für Access 95/97) Platz für Daten zugeteilt, Tabellen oder Indizes in einem zusammenhängenden Gebiet befindet. Jet zurückgewinnt, den Raum von den Aufzeichnungen als gelöscht markiert und schreibt die Datensätze in jeder Tabelle in Primärschlüssel, um wie ein gruppierter Index. Dies wird Ihre DBs Lese / Schreib-ops schneller machen.

Jet aktualisiert auch die Tabellenstatistiken während der Verdichtung. Dazu gehört auch die Anzahl der Datensätze in jeder Tabelle zu identifizieren, die die optimalste Jet-Methode zum Scannen nach Datensätzen zu verwenden, ermöglicht es, entweder durch die Indizes oder durch eine vollständige Tabellensuche verwendet, wenn es wenige Datensätze. Nach der Verdichtung führt jede gespeicherte Abfrage, damit Jet wieder optimiert sie diese aktualisierten Tabellenstatistiken verwenden, die Abfrageleistung verbessern kann.

Access 2000, 2002, 2003 und 2007 die Verdichtung mit einem Reparaturbetrieb kombinieren, wenn sie gebraucht wird. Der Reparaturvorgang:

1 - unvollständige Transaktionen Säubert

2 - Vergleicht Daten in Systemtabellen mit Daten in aktuellen Tabellen, Abfragen und Indizes und repariert die Fehler

3 - Reparaturen sehr einfache Datenstruktur Fehler, wie verlorene Zeiger auf mehrseitige Aufzeichnungen (die nicht immer erfolgreich ist und deshalb „reparieren“ funktioniert nicht immer eine beschädigte Access-Datenbank speichern)

4 - Ersetzt Informationen über ein VBA-Projekt der Struktur fehlt

5 - Ersetzt fehlende Informationen benötigt, um eine Form zu öffnen, Bericht und Modul

6 - Reparaturen einfache Objektstruktur Fehler in Formularen, Berichten und Module

Die schlechten Dinge, die, wenn die Benutzer nie kompakt passieren kann / Reparatur der db ist, dass es aufgrund aufblasen langsam werden, und es kann instabil werden, -. Korrumpiert Bedeutung

eine Access-Datenbank komprimiert (auch als MS JET-Datenbank bekannt) ist ein bisschen wie eine Festplatte defragmentieren. Access (oder, genauer gesagt, der MS JET-Datenbank-Engine) ist nicht sehr gut mit Wiederverwendung von Raum - so, wenn ein Datensatz aktualisiert wird, eingefügt oder gelöscht wird, wird der Raum nicht immer zurückgewonnen - stattdessen neuer Raum wird zu das Ende der Datenbankdatei und stattdessen verwendet.

Eine allgemeine Faustregel gilt, dass, wenn Ihr [Zugriff] Datenbank geschrieben werden (aktualisiert, geändert oder hinzugefügt), sollten Sie erlauben zum Verdichten - sonst ist es wachsen in der Größe ( viel mehr als nur die Daten, die Sie hinzugefügt haben, auch).

Also, um Ihre Frage zu beantworten (e):

  • Ja, es spielt eine Rolle (es sei denn, Ihre Datenbank ist schreibgeschützt).
  • Sie sollten kümmern (es sei denn, Sie nicht kümmern uns um Ihre Benutzer-Speicherplatz).
  • Wenn Sie nicht über eine Access-Datenbank komprimieren, im Laufe der Zeit wird es viel, viel wachsen, viel größer als die Daten im Innern würde vorschlagen, Leistung zu verlangsamen und die Möglichkeiten von Fehlern und Korruption zu erhöhen. (Als dateibasierte Datenbank, Access-Datenbank-Dateien sind berüchtigt für Korruption, vor allem, wenn über ein Netzwerk zugegriffen wird.)

Dieser Artikel auf Wie Microsoft Access-Datenbank über ADO komprimieren wird Ihnen einen guten Ausgang zeigen, wenn Sie sich entscheiden, diese Funktionalität in den App hinzuzufügen.

würde ich die Benutzer ein Verfahren bietet für die Datenbank zu komprimieren. Ich habe gesehen, Datenbanken zu 600+ Megabyte wachsen, wenn Verdichtung auf 60-80 reduzieren wird.

Um Nate Echo: In älteren Versionen habe ich es korrupte Datenbanken habe - so ein gutes Backup-Regime ist von wesentlicher Bedeutung. Ich würde nichts in Ihre App-Code, der automatisch zu tun. Wenn jedoch ein Kunde feststellt, dass ihre Datenbank läuft wirklich langsam, Ihre Tech-Support-Leute können sie durch sie sprechen, wenn Bedarf (mit entsprechenden Sicherungen natürlich) sein.

Wenn ihre Datenbank der so groß sein, dass die Verdichtung kam jedoch eine Notwendigkeit zu sein beginnt, ist es vielleicht Zeit, um MS-SQL zu bewegen.

Wenn Sie nicht bieten Ihre Benutzer eine Möglichkeit zu dekomprimieren und die rohen Größe ist nicht ein Problem mit zu beginnen, dann nicht der Mühe.

Ich habe festgestellt, dass Access-Datenbank-Dateien fast immer im Laufe der Zeit beschädigt werden. Kompaktierung und Reparatur ihnen hilft, dass für eine Weile halten wird.

Nun, es ist wirklich wichtig! mdb Dateien halten in zunehmender Größe jedes Mal, wenn seine Daten zu manipulieren, bis es unerträglich Größe erreicht. Aber Sie müssen nicht ein Verdichtungsverfahren durch Ihre Schnittstelle liefern. Sie können den folgenden Code in Ihrer MDB-Datei hinzufügen, um es jedes Mal, wenn die Datei geschlossen wird verdichtet:

Application.SetOption ( "Auto Compact"), 1

Ich würde auch sehr empfehlen bei VistaDB suchen ( http: //www.vistadb .net / ) oder SQL Compact ( http://www.microsoft.com / sQL / Ausgaben / compact / ) für Ihre Anwendung. Dies ist möglicherweise nicht die richtige Passform für Ihre Anwendung ... aber auf jeden Fall einen Blick wert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top