sql >> Database >  >> RDS >> Sqlserver

Sql Server-indexen bevatten primaire sleutel?

Uw collega vermengt "Primaire sleutel" met "geclusterde indexsleutel" (mogelijk omdat standaard een PK op een heap is gemaakt zonder de nonclustered trefwoord wordt de geclusterde index van de tabel).

Het is waar dat op een tabel met een geclusterde index de waarde van de geclusterde indexsleutel als opgenomen kolom(men) wordt toegevoegd aan alle niet-geclusterde indexen om als rijzoeker te fungeren. (hoewel de kolom(men) niet twee keer worden toegevoegd als ze al deel uitmaken van de niet-geclusterde indexdefinitie).

De ideale geclusterde indexsleutel is

  • uniek (om als rijzoeker te dienen, moet deze uniek zijn - SQL Server voegt een uniquifier toe als dit niet het geval is)
  • smal (zoals weergegeven in alle niet-geclusterde indexen)
  • statisch (voorkom dat u de waarde op meerdere verschillende plaatsen moet bijwerken)
  • steeds toenemend



  1. docker.io - Docker-koppeling tussen applicatie- en databasecontainers

  2. SQL-paginering die het totale aantal records retourneert vóór paginering

  3. 5 beste online cursussen om MySQL te leren

  4. Voer mysql insert alleen uit als de tabel leeg is