sql >> Database teknologi >  >> RDS >> Mysql

Påvirker kolonnerækkefølge ydeevnen i Microsoft SQL Server 2012?

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.



  1. Hvordan får man datatypen mysql tabelkolonner?

  2. Indlejret PostgreSQL til Java JUnit-tests

  3. Dynamisk pivotering af et bord Oracle

  4. Hvordan RTRIM_ORACLE() virker i MariaDB