sql >> Databasteknik >  >> RDS >> Sqlserver

Ska en Sequential Guid-primärnyckelkolumn vara ett klustrat index?

Först för att förtydliga, en primärnyckel och ett klustrat index är två separata och distinkta saker, d.v.s. den ena är inte kopplad till den andra (PK kan vara icke-klustrade, klustrade index kan vara icke-PK).

Med tanke på det tror jag att du frågar mer "Ska en sekventiell GUID användas som ett klustrat index". Det är en laddad fråga, men Kimberly Tripp har diskuterat detta förmodligen den bästa av alla jag sett. Notera att artikeln hänvisar till en PK, men inuti artikeln hänvisar hon till hur hänsynen mest gäller ett klustrat indexval kontra en PK.

Förutsatt att du redan har bestämt dig för att använda en GUID som klusternyckel (vilket kan eller inte kan vara fallet), skulle användningen av en sekventiell GUID med största sannolikhet vara ett bättre val än en icke-sekventiell GUID, men det finns minst 1 scenario där en icke-sekventiell GUID kan föredras (även om ett mycket sällsynt, mycket avancerat scenario där du i princip måste förstå ditt system och din SQL-server så väl att du inte tvivlar på att detta bör användas - skulle ha att göra med hotspots på din lagringsenhet och sprider stora volymer skrivningar över olika platser i klustret).




  1. Skillnad mellan Subquery och Correlated Subquery

  2. Skapar Json-fil med C# av mysql-data

  3. Hur man kontinuerligt tar bort allt äldre än de senaste 10 posterna i en MySQL-databas (möjligen i JPQL/JPA)

  4. SQL Hjälp | Selectlistan för INSERT-satsen innehåller färre objekt än infogningslistan