Integer / Identity-kolommen worden om een aantal redenen vaak gebruikt voor primaire sleutels in databasetabellen. Kolommen met primaire sleutels moeten uniek zijn, mogen niet kunnen worden bijgewerkt en mogen eigenlijk geen betekenis hebben. Dit maakt een identiteitskolom een redelijk goede keuze omdat de server de volgende waarde voor je krijgt, ze moeten uniek zijn en gehele getallen zijn relatief klein en bruikbaar (vergeleken met een GUID).
Sommige database-architecten zullen beweren dat andere gegevenstypen moeten worden gebruikt voor primaire sleutelwaarden en dat de criteria "betekenisloos" en "niet bij te werken" van beide kanten overtuigend kunnen worden beargumenteerd. Hoe dan ook, integer-/identiteitsvelden zijn best handig en veel databaseontwerpers vinden dat ze geschikte sleutelwaarden maken voor referentiële integriteit.
- De beste keuze voor de primaire sleutel zijn gegevenstypen met gehele getallen, aangezien gehele waarden sneller worden verwerkt dan gegevenstypen van tekens. Een karaktergegevenstype (als primaire sleutel) moet worden geconverteerd naar ASCII-equivalente waarden voordat ze worden verwerkt.
- Het ophalen van het record op basis van de primaire sleutel zal sneller zijn in het geval van gehele getallen als primaire sleutels, aangezien dit betekent dat er meer indexrecords op één pagina aanwezig zullen zijn. De totale zoektijd neemt dus af. Ook de joins zullen sneller zijn. Maar dit is van toepassing als uw zoekopdracht gebruik maakt van geclusterde index zoeken en niet scannen en als er slechts één tabel wordt gebruikt. In het geval van een scan die geen extra kolom heeft, betekent dit meer rijen op één gegevenspagina.
Hopelijk helpt dit je!