sql >> Databasteknik >  >> RDS >> Mysql

Påverkar kolumnordning prestanda i Microsoft SQL Server 2012?

Ordningen på kolumner i en tabell kommer att ha en mycket liten inverkan på prestanda, jämfört med prestandapåverkan av din databasdesign (entiteter, attribut och relationer), din transaktionsdesign och din frågedesign.

För att se om skillnaden inte är försumbar, måste du verkligen ställa in några tester och jämföra resultaten.

Vanligtvis sätter jag primärnyckeln som den första kolumnen, sedan den främmande nyckeln (nycklarna) och sedan naturliga nycklar och ofta använda kolumner. Jag brukar lägga de längre strängarna mot slutet av raden. Men detta är inte nödvändigtvis en prestandaoptimering, lika mycket som det är en stilpreferens som jag använder för bekvämlighets skull.

Ordningen på kolumner kan ha en inverkan på storleken på raden i SQL Server, när ett stort antal kolumner i en rad är nullbara och de flesta av dessa kolumner innehåller NULL. SQL Server (som Oracle) har optimering där inget utrymme är reserverat för kolumner som innehåller NULL-värden I SLUTET av raden. En del utrymme är reserverat för varje kolumn i raden, upp till det sista icke-NULL-värdet i raden.

Uttaget av det är att om du har många nollbara kolumner vill du ha de kolumner som oftast inte är NULL FÖRE kolumnerna som oftast är NULL.

OBS:Tänk på att SQL Server ordnar kolumnerna i en tabell först efter om kolumnen har fast längd eller variabel längd. Alla kolumner med fast längd lagras först, sedan följt av alla kolumner med variabel längd. Inom dessa uppsättningar av kolumner (fasta och variabla), lagras kolumnerna i den ordning de definieras.



  1. Skapa ett säkert inloggningsskript i PHP och MySQL utan HTTPS

  2. Konvertera sekunder till dagar, timmar, minuter, sekunder (MySQL)

  3. Korrumperar Django tidszonsmedvetet DateTimeField när det sparas i databasen?

  4. Om pglogisk prestanda