AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firbird bzw. Interbase Datenbank verkleinern
Thema durchsuchen
Ansicht
Themen-Optionen

Firbird bzw. Interbase Datenbank verkleinern

Ein Thema von Christof · begonnen am 4. Feb 2003 · letzter Beitrag vom 11. Feb 2003
Antwort Antwort
Christof

Registriert seit: 15. Jan 2003
Ort: Saarland
97 Beiträge
 
Delphi 2005 Architect
 
#1

Firbird bzw. Interbase Datenbank verkleinern

  Alt 4. Feb 2003, 17:53
Hallo,

ich habe folgende Frage ist es möglich die Datenbank wieder zu verkleinern?

Wie es aussieht vergrößert sich die Firbird Datenbank automatisch.

Ich habe noch Einstellmöglichkeiten für die Grenzen gefunden und ab wann und wieviel vergrößert werden soll.

Gib es sowas?

Ich habe mal 20000 Datensätze testweise importiert und wieder gelöscht. Nun ist meine Datenbank nach dem löschen nicht kleiner geworden. Gut ist ja bei einer Relationalen Datenbank normal. Aber wie kann ich das von Hand kleiner machen, bei MS-SQL gibt es die möglichkeit zu sagen Packe die Datenbank. Wie ist das bei Firebird oder Interbase?

Danke im Voraus.

Gruss

Christof
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#2
  Alt 5. Feb 2003, 07:29
Hi,

der Platz wird bei Inserts wieder belegt - Du hast also definitiv keine Platzverschwendung. Wenn Du das File dennoch kleiner haben willst, dann musst Du ein Backup - Restore durchführen. Damit wird das File neu aufgebaut und die Garbage-Collection erledigt ihre Aufgaben...

Weitere Vorteile eines Bacjup - Restore:

*Die Indizes werden neu aufgebaut -> Performance
*Alle Zähler werden zurückgesetzt -> Bei einer bestimmten Anzahl von Änderungen an den Tabellen sowie bei einer großen Differenz zwischen ältester Transaktion und neuester Transaktion wird ein Backup - Restore fällig.
.
.
.

Grüße
Lemmy
  Mit Zitat antworten Zitat
Christof

Registriert seit: 15. Jan 2003
Ort: Saarland
97 Beiträge
 
Delphi 2005 Architect
 
#3
  Alt 5. Feb 2003, 13:32
Zitat von Lemmy:
Hi,

der Platz wird bei Inserts wieder belegt - Du hast also definitiv keine Platzverschwendung. Wenn Du das File dennoch kleiner haben willst, dann musst Du ein Backup - Restore durchführen. Damit wird das File neu aufgebaut und die Garbage-Collection erledigt ihre Aufgaben...

Weitere Vorteile eines Bacjup - Restore:

*Die Indizes werden neu aufgebaut -> Performance
*Alle Zähler werden zurückgesetzt -> Bei einer bestimmten Anzahl von Änderungen an den Tabellen sowie bei einer großen Differenz zwischen ältester Transaktion und neuester Transaktion wird ein Backup - Restore fällig.
.
.
.

Grüße
Lemmy
Kann ich den Garbage-Collector nicht von Hand starten?

??Alle Zähler werden zurückgesetzt?? Heißt das die Generatoren? Das wäre schlecht damit wird ja der Primärschlüssel in meinen Tabellen gemacht!
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4
  Alt 5. Feb 2003, 14:02
Zitat von "Christof:
??Alle Zähler werden zurückgesetzt?? Heißt das die Generatoren? Das wäre schlecht damit wird ja der Primärschlüssel in meinen Tabellen gemacht!
Das wäre ja wohl auch der Hammer. Nein, im Gegenteil die Werte der Generatoren werden mit gesichert. Was Lemmy meint, sind meiner Vermutung nach die Transaktionsnummern. IB hat ja, soweit ich weiß, als einzige DB ein Multi-Generationen-Prinzip. Da werden die Transaktionen fortlaufend durchnummeriert. Da kann man dann nicht nur die letzte Transaktion rückgängig machen, sondern z.B. vom Stand der Transaktion 180 auf den von 170 zurückgehen. Mich wundert es schon länger, daß andere Datenbanken das nicht können. Hätte ich was zu sagen, so würde bei staatlichen Ausschreibungen diese Fähigkeit gefordert werden. Konkret selber eingesetzt habe ich das ganze so aber auch noch nicht.

Gruß
Hansa
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#5
  Alt 9. Feb 2003, 09:49
HI,

Zitat von Christof:
??Alle Zähler werden zurückgesetzt?? Heißt das die Generatoren? Das wäre schlecht damit wird ja der Primärschlüssel in meinen Tabellen gemacht!
Nein, wie Hansa es schon erklärt hat werden bei Transaktionen eindeutige Nummern vergeben. Wird jetzt eine Transaktion aus unerfindlichen Gründen (z.B. Client-Absturz) nicht beendet, bleibt diese Transaktion offen. Wird die Differenz zwischen letzter offener und aktueller Transaktion zu groß, muss ein Backup_restore durchgeführt werden. Bei diesem wird diese Transaktion beendet (ich glaube mit einem RollBack). Der Grund dafür liegt im MGP (Multi-Generationen-Prinzip). Wird eine Transaktion geöffnet und ist schon eine andere Transaktion da, werden nur die Differenzdaten der 2. Transaktion gespeichert, um diese dann später in die DB einzupflegen. Je mehr Transaktionen geöffnet werden desto mehr Differenzdaten werden gespeichert.... Deshalb das Backup-Restore....
Grüße
Lemmy
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#6
  Alt 10. Feb 2003, 21:31
Hi,

falls Dich interessiert, ich habe mir ein kleines Tool geschrieben welches Interbase-Datenbanken verkleinert.

Funktioniert ganz einfach nach dem Prinzip leere DB erstellen alle Tabellen-Strukturen übertragen. Alle Daten übertragen.

Bringt einiges bei größeren DBs

Data
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#7
  Alt 11. Feb 2003, 07:49
Hi DataCool,

bekommt man auch den Code für dieses Tool?? Wenn ja kannst Du mir das mal zumailen??
Grüße
Lemmy
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#8
  Alt 11. Feb 2003, 09:58
Hi,

für alle die es interssiert, anbei der Source-Code zum optimieren von Interbase/Firebird Datenbanken !

Es werden keine SP oder Views optimiert bzw. übernommen.

Die Application akzeptiert BDE-Namen oder Interbase-Pfadangaben als Übergabe parameter.

Bitte bei Änderungen/Verbesserungen mir unter DataCool@gmx.net Bescheid geben.

Danke

Data
Angehängte Dateien
Dateityp: zip packibdb.zip (46,4 KB, 21x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz