Datenbanken

Borland Database Engine

Optimierung von Paradox-Tabellen

Können Paradox-Tabellen in irgendeiner Form optimiert werden?

Frage

Paradox für Windows speichert die Daten in Dateien mit der Endung .DB. Zur Optimierung der Dateiverwaltung arbeitet Paradox mit Blöcken fester Größe.

Da Paradox-Tabellen intern noch mit 16 Bit arbeiten, kann eine Paradox-Tabelle maximal 65536 Blöcke verwalten. Da ein Block maximal 32 kB groß werden kann, ergibt sich die maximale Größe einer Paradox-Tabelle zu

Lösung

32 kB * 65536 = 2.097.152 kB = 2 GB

Allerdings verwendet die BDE für den Paradox-Treiber in der Regel eine Blockgröße von 2 kB, so daß die maximale Datenbankgröße ohne Änderung der Defaultwerte nur

Maximalgröße

2 kB * 65536 = 131072 kB = 128 MB

betragen kann.

Defaultgröße

Innerhalb eines Blocks können nur vollständige Datensätze abgelegt werden. Je nach Definition eines Datensatzes wird ein Block somit mal mehr und mal weniger gut ausgenutzt.

Da für die interne Verwaltung pro Block 6 Byte benötigt werden, kann ein Datensatz bei der Defaultvorgabe von 2-kB-Blöcken maximal 2042 Byte Nutzdaten aufnehmen.

Die nachfolgende Tabelle zeigt anhand einiger Beispielgrößen, wie effizient ein Block abhängig von der Datensatzgröße ausgenutzt wird:

Satzgröße

Anzahl Sätze

Genutzt

Ungenutzt

40

51

2040

2

64

31

1984

58

100

20

2000

42

120

17

2040

2

150

13

1950

92

175

11

1925

117

300

6

1800

242

Blockverwaltung

Je größer ein einzelner Block ist, desto besser passen Datensätze in diesen Block, und desto weniger bleibt Speicherplatz auf der Festplatte ungenutzt. Anderseits wächst mit steigenden Blöcken auch der Platzbedarf auf der Festplatte, da die BDE jeweils einen Block allokiert, auch wenn nur ein Datensatz geschrieben werden müßte.

Vor- und Nachteile

Abbildung 5/2.5.1.2-1: Blockgröße des Paradox-Treibers einstellen

Zusätzlich sollte ggf. auch der Datenpuffer in der BDE vergrößert werden, damit auch bei größeren Datenbanken die Performance nicht leidet:

Abbildung 5/2.5.1.2-2: Buffer des Systems anpassen

Generell zeigt es sich, daß es von Vorteil ist, möglichst kleine Datensätze zu nutzen, da hier der ungenutzte Platz minimiert wird. Daneben kann man den Speicherbedarf für einen Datensatz jedoch auch auf die Blockgröße optimieren bzw. die Blockgröße anpassen, wobei die Blockgröße jedoch nur in kB-Schritten geändert werden kann.

Zur Optimierung der Datensatzgröße muß man den Speicherbedarf der einzelnen Feldtypen kennen:

Kleine Datensätze

Feldtyp

Kürzel

Speicherbedarf

Alphanumerisch

A

Größe des Felds

Numerisch

N

8

Währung

$

8

Integer kurz

S

2

Integer lang

I

4

BCD

#

17

Datum

D

4

Zeit

T

4

Datum/Zeit

@

8

Logisch

L

1

Autoincrement

+

4

Binär intern

Y

(Größe der Daten)

Binär

B

10 (+ Größe der Daten)

Memo

M

10 (+ Feldgröße)

Formatiertes Memo

F

10 (+ Feldgröße)

Grafik

G

10 (+ Größe der Grafik)

OLE

O

10 (+ Größe des Objekts)

Standardgrößen

Binär- Memo-, Grafik- und OLE-Felder werden außerhalb des Datensatzes in einem separaten Block verwaltet. Die zugehörigen Felder belasten den Datensatz daher nur mit 10 Bytes, in denen eine Referenz auf den Speicherplatz im BLOB-Speicher abgelegt wird.

BLOB-Felder

Ergibt sich ein ungenutzter Speicherplatz im Dateiblock, so kann dieser ggf. dem Datensatz zur Verfügung gestellt werden, da die BDE den Platz sowieso allokiert. Es ist daher oftmals ratsam, die Gesamtgröße des Datensatzes in Bezug auf die Blockgröße zu vergleichen, anstatt mit Bytes zu geizen, die letztendlich sowieso systembedingt verloren gehen!

Blockausnutzung optimieren

Neben der Blockgröße ist auch noch, die maximale Datensatzgröße zu beachten. Diese hängt jedoch davon ab, ob die Tabelle indiziert ist oder nicht. Ohne Index kann ein Datensatz maximal 4000 Bytes enthalten. Besteht ein Index, was wohl der Regelfall sein dürfte, so passen nur 1350 Bytes in einen Datensatz. In der Praxis sollte ein Datensatz jedoch gar nicht erst so groß werden.

Maximale Datensatzgröße





Sachgebiet


© 2009-2012 by Alojado Publishing. Alle Rechte vorbehalten. Ausgewiesene Marken gehören ihren jeweiligen Eigentümern.
Mit der Benutzung dieser Seite erkennen Sie die Nutzungsbedingungen und die Datenschutzerklärung an. Der Betreiber übernimmt keine Haftung für den Inhalt verlinkter externer Internetseiten.
Seite erzeugt 2012-05-20 02:52:07 von textarchiv.alojado.de