sql >> Database >  >> RDS >> Sqlserver

Maakt SQL Server standaard een niet-geclusterde index op alle kolommen van een tabel?

Nee, SQL Server maakt niet automatisch niet-geclusterde indexen.
Een geclusterde index wordt automatisch gemaakt op basis van de primaire sleutel, tenzij uw CREATE TABLE verklaring zegt iets anders.

Ja, ik zou aanraden om kolommen met vreemde sleutels te indexeren, omdat deze het meest waarschijnlijk worden JOIN'd/doorzocht met behulp van IN , EXISTS , enz. Houd er echter rekening mee dat een index op een reeks waarden met een lage kardinaliteit (bijvoorbeeld geslacht) relatief nutteloos is omdat er niet genoeg verschil in de waarden is.

De wisselwerking met alle indexen is dat ze het ophalen van gegevens kunnen versnellen, maar het invoegen/bijwerken/verwijderen van gegevens vertragen. Er is ook onderhoud dat moet worden uitgevoerd omdat ze gefragmenteerd kunnen raken (zoals harde schijven) maar ook na verloop van tijd niet kunnen wennen. Indexen nemen ook schijfruimte in beslag.




  1. geen groepsfunctie met één groep met MAX in select

  2. Hoe verbinding maken met de PostgreSQL-database via SSL?

  3. EntityFramework 6.1.3 en MySQL DbFunctions.TruncateTime bestaat niet?

  4. Onbekende fout:MySQLTransactionRollbackException 1213