Zitat Zitat von Fuerchau Beitrag anzeigen
Das mit dem Allocate würde ich mal lassen. Wenn Geschwindigkeit Vorrang hat, dann sollte man VARCHAR's nicht splitten!
Eigentlich ist es genau umgekehrt. Wenn kein Allocate angegeben wird, werden IMMER die Werte außerhalb des Satzes gespeichert. Somit müssen zusätzliche I/Os durchgeführt werden um die Werte der Spalten zu bekommen.
Mit dem ALLOCATE Parameter kann definiert werden ab wieviel Zeichen erst der zu speichernde Wert ausgelagert werden soll.
Beispiel:
Wenn also der Großteil der Werte einer Spalte nicht mehr als 20 Zeichen beinhalten und die Spalte mit VARCHAR(200) definiert wurde, macht es zwecks Performance Sinn ein ALLOCATE(20) zu definieren.
Somit bleiben die vielen kleineren Werte zusammen im gleichen Speicherbereich wie der Satz selber und man erspart sich viele I/Os dadurch.