Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird DB Größe nach löschen von Sätzen gleichgross ? (https://www.delphipraxis.net/123928-firebird-db-groesse-nach-loeschen-von-saetzen-gleichgross.html)

nachtstreuner 11. Nov 2008 13:00

Datenbank: Firebird • Version: 1.5 • Zugriff über: ZEOS

Firebird DB Größe nach löschen von Sätzen gleichgross ?
 
Firebird-Experten gefragt

ich habe heute mal eine Firebird Datenbank(fdb) bereinigt, Größe vorher ca. 149 MB, dann habe ich über 130.000 Datensätze exportiert und danach gelöscht, trotzdem ist die Gesamtgröße gleich geblieben.

Gibt es hierfür eine Erklärung ?

mfg
nachtstreuner

mkinzler 11. Nov 2008 13:02

Re: Firebird DB Größe nach löschen von Sätzen gleichgross ?
 
Ja, es wird nicht wirklich gelöscht sondern nur markiert. Führe mal ein Datenbank-Sweep oder ein Backup/Restore durch

nachtstreuner 11. Nov 2008 13:05

Re: Firebird DB Größe nach löschen von Sätzen gleichgross ?
 
Danke mKinzler,

hab ich mir fast gedacht, wie beim alten dBase !

ich habe den EMS Manager zum löschen benutzt, wie führe ich da ein Sweep aus ?

mfg
nachtstreuner

mkinzler 11. Nov 2008 13:09

Re: Firebird DB Größe nach löschen von Sätzen gleichgross ?
 
Ich kenne den EMS nicht, nach dem Screenshot könnte es sich unter Services verbergen

nachtstreuner 11. Nov 2008 13:16

Re: Firebird DB Größe nach löschen von Sätzen gleichgross ?
 
Hallo mKinzler

der EMS Firebird Manager ist ein externes Tool, um Firebird-DBs anzulegen, zu löschen und verschiedene
Transaktionen auszuführen. An und für sich ein sehr gutes Admin-Tool.

Habe jetzt auch die Datenbankgröße reduzieren können, nach deinem Hinweis, von 149 MB auf 10 MB.

Für alle die den EMS benutzen.

1. Schritt - nicht mehr benötigte Datensätze exportieren bzw. gleich löschen
2. Schritt - unter Dienste ein Datenbank-Backup starten
3. Schritt - Die Datenbank runterfahren, nicht den EMS beenden, wenn die DB nicht runtergefahren wird, kommt es zu einer Fehlermeldung beim Restore, DB in use.
4. Schritt - nachdem die DB heruntergefahren wurde, unter Dienste Datenbank Restore aufrufen, dort das vorher angelegte BACKUP aufrufen und Restore starten und siehe da (ALLES wird GUT).

Danke an mKinzler und das DP Team

mfg
nachtstreuner

Elvis 11. Nov 2008 13:50

Re: Firebird DB Größe nach löschen von Sätzen gleichgross ?
 
Dir ist aber klar, dass das absolut nicht notwendig sein sollte?
Der Platz wird vom DBMS wiederverwendet. Wenn du also später Daten hinzufügst, muss die Datei nicht vergrößert werden.
Vergrößern von Dateien ist immer mit einem Performanceeinbruch verbunden, deshalb lässt FB die Dateien in der Größe.
Bei dBase musste man tatsächlich regelmäßig verkleinern. Bei Firebird muss man eigentlich bis auf das normale, regelmäßige Backup gar nix machen.

mkinzler 11. Nov 2008 14:06

Re: Firebird DB Größe nach löschen von Sätzen gleichgross ?
 
Zitat:

der EMS Firebird Manager ist ein externes Tool, um Firebird-DBs anzulegen, zu löschen und verschiedene
Transaktionen auszuführen. An und für sich ein sehr gutes Admin-Tool.
Das war mir klar, nur wo sich die Funktioen im Menü versteckt wusste ich halt nicht.

gsh 11. Nov 2008 14:15

Re: Firebird DB Größe nach löschen von Sätzen gleichgross ?
 
Zitat:

Zitat von Elvis
Vergrößern von Dateien ist immer mit einem Performanceeinbruch verbunden, deshalb lässt FB die Dateien in der Größe.

Nicht ganz ... ein verkleinern der dateien hat einen performance nachteil das vergrößern kaum. (deswegen läßt ein DBMS die dateien einfach so groß)

Wahrscheinlich will er die datenbank kleiner bekommen damit sie noch so viel platz verbraucht.

mkinzler 11. Nov 2008 14:26

Re: Firebird DB Größe nach löschen von Sätzen gleichgross ?
 
Zitat:

Nicht ganz ... ein verkleinern der dateien hat einen performance nachteil das vergrößern kaum.
Doch das Vergrößern der Datei benötigt Zeit und führt u.U. noch zu Fragmentierung der Datenbankdatei, was zusätzlich Performance kostet.

alzaimar 11. Nov 2008 15:37

Re: Firebird DB Größe nach löschen von Sätzen gleichgross ?
 
Ich kenne die interne Struktur von FB nicht, aber normalerweise ist eine regelmäßige Seitenreorganisation für eine performante DB unabdingbar. In Abhängigkeit von der Fetchengine sowie dem Pagemanager kann es zu drastischen Performancegewinnen kommen, wenn logisch zusammenhängende Seiten bei einem Reinigungslauf, der über das reine Verkleinern hinausgeht, auch "nebeneinander" abgelegt werden.

Unter Windows gibt es das Scatter/Gather-IO, bei dem bis zu 8 Seiten in einem Wisch in den Speicher geladen bzw. geschrieben werden. Zumindest MS-SQL sortiert daher vorher (während einer Reorganisation) die Seiten so, das die zu einer DB/Tabelle gehörenden Daten schneller geladen werden.

Wie das bei Firebird ist, weiss ich jedoch nicht, es würde micht jedoch nicht wundern, wenn dort eine ähnliche Organisation und Strukur vorhanden ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz