verwendetes Datenbanksystem: MS SQL ab 2012
Hallo,
ich hoffe ich hab das Thema venünpftig benannt.
Wollte fragen, ob es für eine neue Spalte in eirner Tabelle möglich ist, 2 Größenangaben zu machen, nämlich eine kleinere und eine mit Maximum?:
ALTER TABLE dbo.Tabelle ADD NeueSpalte (NVARCHAR(15)->normal) NVARCHAR(30)->Maximum
Soweit ich weiß, wird bei NVARCHAR nur der Platz belegt, der benötigt wird, ohne das der Rest der definierten Größe der Spalte mit Leerzeichen aufgefüllt wird.
Wie ist es aber dann in echt, wird im Hintergrund trotzdem der Platz reserviert, da ja sich der Wert ändern kann?
--> Aus dem heraus stellt sich dann meine Frage, ist es möglich mit 2 Größenangaben eine Spalte zu definieren oder eher humbug?
Warum?
Da es sein kann, daß z.Bsp 80% der Daten sich unter der Länge von 15 befindet, der wenige Rest dann aber mehr haben kann.
Vielen Dank im Voraus!
Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄
Eine Spalte kann nur eine Größe haben - ansonsten würde die Angabe auch keinen Sinn machen.
Die Größe wird vor allem für den bereits im Voraus reservierten Speicher der Datenbank verwendet. Tatsächlich sind aber Datenbanken mittlerweile so intelligent, dass sie in einer Spalte nur die Größe tatsächlich auf die Festplatte legen, wie sie auch benötigt wird.
Anders sieht es bei Indizes und Werten im RAM aus.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Danke für die schnelle Erklärung.
Die Sache ist damit abgeschlossen. 👍
Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄