Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Funktionsweise von DB komprimieren / reparieren

49 views
Skip to first unread message

hyper-world

unread,
Apr 6, 2001, 4:18:01 PM4/6/01
to
Hallo,

was bezweckt die Funktionsweise Datenbank komprimieren bzw. reparieren. Also
was wird genau ausgeführt, kann die DB dadurch beschädigt werden.
Ich habe gehört, dass z.B. der AutoWert zurückgesetzt wird, falls Datensätze
gelöscht wurden.

Kann mir jemand dazu was sagen?

Danke :)

Andreas


Klaus Oberdalhoff [MVP Access]

unread,
Apr 6, 2001, 6:30:16 PM4/6/01
to
Hi,

> was bezweckt die Funktionsweise Datenbank komprimieren bzw. reparieren.
Also
> was wird genau ausgeführt, kann die DB dadurch beschädigt werden.
> Ich habe gehört, dass z.B. der AutoWert zurückgesetzt wird, falls
Datensätze
> gelöscht wurden.

Da dich diese Dinge interessieren, solltest du dich ein wenig mit
Datenbanktheorien und deren Realisierung in der Praxis auseinandersetzen.

Wie die meisten Datenbanken so löscht intern Access seine Daten nicht,
sondern es markiert sie als gelöscht. Im Lauf der Zeit sammelt sich in einer
Access-Datenbank (du mußt dir das vorstellen wie das Temp-Directory von
Windows) allerhand Müll an, der dazu führt, daß deine Datenbank langsam wird
und ggf auch kaputt geht.

Größere Datenbanken arbeiten idR auch nicht anders, sie starten halt nur
automatisch einen Schedule-Lauf zu gewisen Zeiten (oder bei bestimmten
Ereignissen) der das Ganze dann für sie erledigt ...

Komprimieren erzeugt in Access eine neue Datenbank. Alle nicht als gelöscht
gekennzeichneten Bausteine werden in die neue Datenbank kopiert.

Was reparieren macht, weiß ich nicht genau; was ich jedoch GENAU weiß, ist,
daß ich schon ab ubd zu eine "kaputte" MDB repariert habe, und es hinterher
so einigermaßen wieder funktionierte, d.h. die entsprechende Datenbank dann
wieder "repariert" war.

> kann die DB dadurch beschädigt werden.

<doppel lol>, nein das absolute Gegenteil ist der Fall. Deine Datenbank wird
dir mit exponentiell steigender Wahrscheinlichkeit kaputtgehen, je länger du
sie NICHT reparierst und komprimierst. Oder anders ausgedrückt: Es ist nicht
die Frage, OB dir deine Datenbank kaputtgeht, wenn du sie nicht regelmäßig
komprimierst, sondern es ist nur eine Frage WANN sie kaputtgeht.

> Ich habe gehört, dass z.B. der AutoWert zurückgesetzt wird, falls
Datensätze
> gelöscht wurden.

Ja, das ist (teilweise) richtig.

Access-intern exisitert wohl eine Variable, die jeweils den höchsten
verwendeten Autowert gespeichert hat. Nun hat Access die Angewohnheit,
Autowerte grundsätzlich NIE zurückzusetzen, auch wenn DU zwischendurch
Datensätze löschst, oder die Erstellung eines Autowertes abbrichst. D.h. du
hast Autowerte:

1
2
7
8
und die interne Autowert-Variable steht auf 15, da DU die Sätze 9 bis 14
gelöscht hast

Wenn du jetzt die Datenbank komprimierst, wird die interne Variable auf 9
gesetzt, d.h. der nächste vergebene Autowert hat den Wert 9. Das ist alles.

Eine SEHR nützliche Funktion, wenn du dir vorstellst, du hast eine
Datenbank, diese hast du mit "Spiel / Testdaten" gefüllt, aber du möchtest
diese Datenbank ausliefern, und sicherstellen, daß die Autowerte wieder bei
eins anfangen. Du löschst also die Tabelleninhalte, dann komprimierst du die
MDB, und schon ist deine MDB wieder "jungfräulich" und die Autowerte fangen
wieder brav bei eins an.....

--
mfg

Klaus KO...@gmx.de

Ich beantworte keine NG-Fragen und -Nachfragen per Mail!

PS:Tips und Tricks zu ACCESS 97 (** KnowHow-MDB ** Ver 3.0 - 30.9.1999)
unter http://www.accessware.de/
Access-FAQ bei: http://www.donkarl.com/AccessFAQ.htm
SQL-Server-FAQ: http://www.berndjungbluth.de

Norbert Köhler

unread,
Apr 7, 2001, 5:10:43 AM4/7/01
to

-----Originalnachricht-----
Hallo,

Danke :)

Andreas

Keine Sorge beim Komprimieren. Bei dieser Funktion werden keine Autowerte
zurückgesetzt, sondern lediglich temporäre Objekte, die durch
Entwicklungsarbeiten entstanden sind, gelöscht. Dies sind z.B. ältere Versionen
von Formularen und Berichten, nachdem sie überarbeitet worden sind. Diese Objekte
sind für den Anwender nicht mehr sichtbar oder verfügbar, jedoch noch als
verdecktes Objekt vorhanden.

Die Komprimierung empfiehlt sich ausserdem nach grösseren Datentransaktionen
(Löschungen und Importen) Im Hintergrund wird (standardmäßig) eine DB1.MDB
angelegt und dann werden alle aktuellen Objekt herüberkopiert. Veränderungen an
Datenstrukturen / Beziehungen o.ä. finden nicht statt.

0 new messages