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

Firebird Datenbank komprimieren?!?

55 views
Skip to first unread message

Ralf Steinhaeusser

unread,
Jun 4, 2004, 11:19:50 AM6/4/04
to
Hallo,

ich möchte eine Firebird Datenbank die plötzlich ziemlich
angeschwollen ist ein wenig "aufräumen". (Viel kann ja nicht drin
sein, die Daten sind nahezu die selben, die DB ist aber von 500k auf
13MB angewachsen - lässt sich aber nach wie vor auf 180k zippen.

Wie geht das?!? (Brauche keinen Code, ein Tool würde mir reichen. Ich
hab mit IBExpert herumprobiert, da aber nichts entsprechendes
gefunden)

Danke,
Ralf

Florian Hector

unread,
Jun 4, 2004, 11:44:44 AM6/4/04
to
Hallo Ralf,

> Wie geht das?!? (Brauche keinen Code, ein Tool würde mir reichen. Ich
> hab mit IBExpert herumprobiert, da aber nichts entsprechendes
> gefunden)

Backup und Restore, geht auch mit IBExpert

Florian


Martin Behrens

unread,
Jun 4, 2004, 11:46:56 AM6/4/04
to
Ralf Steinhaeusser schrieb:

Z. B. mit Hilfe von gbak (Backup mit anschließendem Restore).


Martin

Oliver Steinfeldt

unread,
Jun 7, 2004, 5:30:59 AM6/7/04
to
Ralf Steinhaeusser schrieb:
> Hallo,

Hallo auch,

> ich möchte eine Firebird Datenbank die plötzlich ziemlich
> angeschwollen ist ein wenig "aufräumen".

> Wie geht das?!? (Brauche keinen Code, ein Tool würde mir reichen. Ich
> hab mit IBExpert herumprobiert, da aber nichts entsprechendes
> gefunden)

Da muüstest du ein backup und restore machen. Du kannst auch die
folgenden Befehle in eine Batch schreiben oder auf der Konsole ausführen.

gfix -shut -force 5 [DBNAME].gdb -user SYSDBA -password [DBPASSWD]
gfix -v -full [DBNAME].gdb -user SYSDBA -password [DBPASSWD]
gfix -mend -full -ignore [DBNAME].gdb -user SYSDBA -password [DBPASSWD]
gbak -B -V -IG -Garbage -limbo [DBNAME].gdb [DBNAME].gbk -user SYSDBA
-password [DBPASSWD]
gbak -c -v -r [DBNAME].gbk [DBNAME].gdb -user SYSDBA -password [DBPASSWD]
gfix -online [DBNAME].gdb -user SYSDBA -password [DBPASSWD]

Das sollte auch eventuelle Fehler in der DB bereinigen.

HTH

Oliver

Achim Kalwa

unread,
Jun 7, 2004, 6:05:27 AM6/7/04
to
Hallo,

Oliver Steinfeldt wrote:

> Da muüstest du ein backup und restore machen. Du kannst auch die
> folgenden Befehle in eine Batch schreiben oder auf der Konsole ausführen.
>
> gfix -shut -force 5 [DBNAME].gdb -user SYSDBA -password [DBPASSWD]
> gfix -v -full [DBNAME].gdb -user SYSDBA -password [DBPASSWD]
> gfix -mend -full -ignore [DBNAME].gdb -user SYSDBA -password [DBPASSWD]
> gbak -B -V -IG -Garbage -limbo [DBNAME].gdb [DBNAME].gbk -user SYSDBA
> -password [DBPASSWD]
> gbak -c -v -r [DBNAME].gbk [DBNAME].gdb -user SYSDBA -password [DBPASSWD]

^^ ^^
Entweder -c (Create) oder -r (Replace). Replace ist aber "böse", denn es
überschreibt die intakte Datenbank! Falls in den Schritten zuvor
irgendwo Probleme aufgetaucht sind, kann das zu einer unbenutzbaren DB
führen.

Auf jeden Fall sicherer (aber auch Plattenplatz-intensiver) ist es, vor
dem Restore die Datenbank umzubennen und dann ein Restore mit der Option
-c durchzuführen (create new database).

Wenn der Restore erfolgreich durchgeführt wurde, dann kann die
umgenannte Original-Datenbank entsorgt werden.

Achim

Ralf Steinhaeusser

unread,
Jun 11, 2004, 6:01:58 AM6/11/04
to
On Fri, 4 Jun 2004 17:44:44 +0200, "Florian Hector" <FHe...@web.de>
wrote:

>Backup und Restore, geht auch mit IBExpert

Hab ich probiert, hat nix geholfen.
Kann man irgendwie überprüfen wo (z.B. in welchen Tabellen) wieviel
Speicher verbraucht wird?

Danke,
Ralf

Holger Klemt

unread,
Jun 11, 2004, 8:15:28 AM6/11/04
to
ja, in der Statistik zur Datenbank steht die Anzahl der belegten Pages
pro Tabelle (in IBExpert kann man dann auch direkt in kb
die Größen ablesen)

--
Best Regards

Holger Klemt

Get the 2004 FB Conference DVD with 40 Hours of Session Videos
The most Expert for InterBase and Firebird --- www.ibexpert.com
HK Software - Huntestrasse 15 - 26135 Oldenburg - Germany
Training and Support for Delphi, InterBase, Firebird, AS/400


Ralf Steinhaeusser

unread,
Jun 11, 2004, 10:44:21 AM6/11/04
to
On Fri, 11 Jun 2004 14:15:28 +0200, "Holger Klemt" <hkl...@h-k.de>
wrote:

>ja, in der Statistik zur Datenbank steht die Anzahl der belegten Pages
>pro Tabelle (in IBExpert kann man dann auch direkt in kb
>die Größen ablesen)

Lustig.
Die Tabelle hat ja 12MB,
in der IBExpert(26.2.2004)-Statistik steht aber:

TableName;Pages;Size;Slots;Fill;DPUsage;FD 0-19%;FD 20-39%;FD
40-59%;FD 60-79%;FD 80-99%;Flag
PATIENTS;0;0;0;0;0,000;0;0;0;0;0;False
RECORDINGS;0;0;0;0;0,000;0;0;0;0;0;False
RECSTATES;8;8.192;10;79;44,444;0;1;0;0;7;False
REPORTS;6;6.144;6;62;33,333;0;1;2;2;1;False
SYSTEMSETTINGS;1;1.024;1;82;5,556;0;0;0;0;1;False
TEMPLATES;2;2.048;2;59;11,111;0;0;2;0;0;False
USERS;1;1.024;1;11;5,556;1;0;0;0;0;False

d.h. die Grössen der Tabellen sind 0,0,8k, 6k, 1k, 2k, und 1k,
summasumarum also quasi nix. Das kann auch nicht stimmen,die Tabelle
"Reports", laut IBExport 6kb gross, enthält Blob-Daten mit sicher mehr
als 50kb.

Werden Blob-Daten da irgendwie getrennt behandelt?

Thx,
Ralf

Holger Klemt

unread,
Jun 11, 2004, 11:37:22 AM6/11/04
to
das kann durchaus sein, wir werten da einfach die offizielle statistik aus.
Wenn du willst kannst du mir die db ja mal senden, dann kann
ich das genauer analysieren.

Ralf Steinhaeusser

unread,
Jun 14, 2004, 12:08:09 PM6/14/04
to
On Fri, 11 Jun 2004 17:37:22 +0200, "Holger Klemt" <hkl...@h-k.de>
wrote:

>das kann durchaus sein, wir werten da einfach die offizielle statistik aus.


>Wenn du willst kannst du mir die db ja mal senden, dann kann
>ich das genauer analysieren.

schon unterwegs.
Danke im voraus...

Ralf

Holger Klemt

unread,
Jun 14, 2004, 1:25:22 PM6/14/04
to
hab mal eine UDF aus der Bibliothek rfunc installiert und damit dann deine
Tabelle reports untersucht

select
name,
B_TOTAL_LENGTH(content)
from reports
order by 2 desc


und da kam folgendes raus

PlgHRVDiffHisto 4149332
PlgHRVHisto 4149306
PlgHRVScatter 4149302
- 20611
- 16447
- 13151
- 12534
- 10152
- 8967
- 7848
- 7796
PlgStView 5093
PlgBeatTrend 4459
PlgECGDetail 4423
PlgPacePMPM 4365
PlgPacePMR 4359
PlgHRVSpectogram 4343
PlgAtrial 4341
PlgECGDStrip 4337
PlgSignalView 4318
PlgRangeView 4317
PlgApnea 4297
PlgFullDisclosure 4114
PlgArrhythmia 4080
PlgTabSummary 4061
PlgHRVParams 3977


Die ersten 3 Reports belegen je 4 MB, wenn man in IBExpert mit dem Blob
Editor da mal reinschaut, sieht man aber keinen Grund, warum der RTF Inhalt
so gross ist. Am Header sieht man, das die von WPTools erzeugt wurden,
warum die so viel Platz wegnehmen, kann ich auch nicht sagen
(bei PlgHRVDiffHisto sind zwischen Position hex 000013f0 und hex 003f4fd0
nur 00 Hexwerte, also sicher sinnvoll, den report mal zu überdenken

Ralf Steinhaeusser

unread,
Jun 28, 2004, 5:00:09 AM6/28/04
to
On Mon, 14 Jun 2004 19:25:22 +0200, "Holger Klemt" <hkl...@h-k.de>
wrote:

>hab mal eine UDF aus der Bibliothek rfunc installiert und damit dann deine
>Tabelle reports untersucht

???
Was ist UDF und rfunc.
Und wie installiert man das?!?

Danke übrigens für den Tip mit den 3 Reports...
Ralf

Holger Klemt

unread,
Jun 28, 2004, 2:07:36 PM6/28/04
to
> Was ist UDF und rfunc.
Userdefined Function, eine funktion (unter windows aus
einer dll), die man in den sprachumfang von firebird
einbinden kann


einfach mal http://www.ibexpert.info/documentation
öffnen und nach udf suchen, das steht eine ganze menge dazu.

--
Best Regards

Holger Klemt

0 new messages