[53705] in SAPr3-news

home help back first fref pref prev next nref lref last post

Re: Datenbank-Spezis vor...Größe von Datenbanktabellen??

daemon@ATHENA.MIT.EDU (Christian Knappke)
Mon Mar 7 04:10:09 2005

To: sapr3-news@mit.edu
Date: Mon, 7 Mar 2005 09:07:59 +0000 (UTC)
From: Christian Knappke <chknews@gmx.net>
Message-ID: <Xns96126719338B1nnsshiqqcuusnqfigmxn@10.16.7.20>

From the keyboard of Markus <lucky@lucky-one.de>:

...
>>> Wie werden nun bei der Berechnung der Größe die leeren Felder
>>> mitberechnet? Anders gefragt: nimmt ein leeres 10-stelliges
>>> Char Feld genausoviel Platz weg, wie ein gefülltes
>>> 10-stelliges Char Feld?? 

>> Auch das hängt davon ab, welches DBMS Du benutzt und wie die 
>> Felder auf der Datenbank definiert sind (CHAR vs. VARCHAR). 

> erst mal vielen Dank für die Antworten. Aber ich habe mich wohl
> falsch ausgedrückt, denn die Frage, die uns beschäftigt hat, war
> im Prinzip nur, ob leere Felder auf der DB ganausoviel Speicher
> benötigen wie gefüllte. In den großen Tabellen der SAP (z.B. im
> FI) sind in der Regel ca. 30-40 % der Tabellenfelder leer.
> Die Überlegung war nun, dass ja eigentlich eine ganze Menge
> Platz verschwendet würde, wenn die DB nicht Mittel und Wege
> hätte, dies zu kompensieren.
> Und da wir beide nicht gerade Datenbank-Spezis sind, dachte ich
> mir, ich frage hier mal nach.

Wie oben geschrieben: es hängt vom DBMS und der Implementierung 
ab. Da Du dich über das verwendete Produkt ausschweigst, kann ich 
die hier auch nichts weiter sagen. 

Schau doch selbst nach: SE11 -> Tabellenname -> Anzeigen -> 
Hilfsmittel -> Datenbankobjekt -> Anzeigen. Findest Du in der 
Spalte Datentyp VARCHAR, dann wird leerer Platz nicht gespeichert, 
findest Du CHAR, dann belegt das Feld immer soviel Platz, wie die 
Länge angibt. 

Früher musste man sich genau überlegen, wie man implementiert und 
welche Ressource man verschwendet (um den von Dir eingeführten 
Begriff zu benutzen): VARCHARs sind teuer hinsichtlich CPU, da 
eben mit den variablen Längen herumhantiert werden muss, CAHRs 
brauchen halt Platz. Heute sind CPU und Plattenplatz in den für 
diese feinen Unterschiede benötigten Größenordnungen i.A. kein 
Thema und damit ist es egal und kein Qualitätsmerkmal für die eine 
oder andere Implementation.

HTH

Christian
-- 
#include <std_disclaimer.h> 
/* The opinions stated above are my own and not 
   necessarily those of my employer. */

home help back first fref pref prev next nref lref last post