Rækkefølgen af kolonner i en tabel vil have en meget lille indvirkning på ydeevnen sammenlignet med ydeevnepåvirkningen af dit databasedesign (enheder, attributter og relationer), dit transaktionsdesign og dit forespørgselsdesign.
For at se, om forskellen ikke er ubetydelig, skal du virkelig konfigurere nogle tests og sammenligne resultaterne.
Typisk sætter jeg primærnøglen som den første kolonne, derefter fremmednøglen(e) og derefter naturlige nøgler og hyppigt tilgåede kolonner. Jeg sætter typisk de længere strenge mod slutningen af rækken. Men dette er ikke nødvendigvis en præstationsoptimering, så meget som det er en stilpræference, som jeg bruger for nemheds skyld.
Rækkefølgen af kolonner kan have indflydelse på størrelsen af rækken i SQL Server, når et stort antal kolonner i en række kan nulstilles, og de fleste af disse kolonner indeholder NULL. SQL Server (som Oracle) har optimering, hvor der ikke er reserveret plads til kolonner, der indeholder NULL-værdier I SLUTTEN af rækken. Der er reserveret plads til hver kolonne i rækken, op til den sidste ikke-NULL-værdi i rækken.
Udbyttet af det er, at hvis du har mange nullable kolonner, vil du have de kolonner, der oftest ikke er NULL FØR de kolonner, der oftest er NULL.
BEMÆRK:Husk, at SQL Server sorterer kolonnerne i en tabel først efter, om kolonnen har fast længde eller variabel længde. Alle kolonner med fast længde gemmes først, derefter efterfulgt af alle kolonner med variabel længde. Inden for disse sæt af kolonner (faste og variable) er kolonnerne gemt i den rækkefølge, de er defineret.