sql >> Databasteknik >  >> RDS >> Sqlserver

Skapar SQL Server icke-klustrade index på alla kolumner i en tabell som standard

Nej, SQL Server skapar inte automatiskt icke-klustrade index.
Ett klustrade index skapas automatiskt baserat på primärnyckeln, om inte din CREATE TABLE uttalandet säger något annat.

Ja, jag skulle rekommendera att indexera kolumner för främmande nyckel eftersom dessa är mest sannolikt att JOIN's/söks mot att använda IN , EXISTS , etc. Tänk dock på att ett index på en uppsättning värden med låg kardinalitet (exempelvis kön) kommer att vara relativt värdelös eftersom det inte finns tillräckligt med skillnader i värdena.

Avvägningen med alla index är att de kan påskynda datahämtning, men sakta ner datainsättning/uppdatering/radering. Det finns också underhåll som måste utföras eftersom de kan bli fragmenterade (som hårddiskar) men kanske inte vänjer sig med tiden. Index tar också upp diskutrymme.




  1. Lägg till begränsning för att göra kolumnen unik per grupp av rader

  2. AJAX uppdaterar MYSQL-databas med funktionen anropad från HTML genererad från PHP

  3. Vad är en lösning av flera resultatuppsättningar returnerades av frågan

  4. En översikt över Just-in-Time Compilation (JIT) för PostgreSQL