sql >> Database >  >> RDS >> Sqlserver

Moet ik in SQL Server een index maken voor een identiteitskolom of wordt deze automatisch gemaakt?

create table test (Id int identity)
go
sp_help test
The object 'test' does not have any indexes, or you do not have permissions.

No constraints are defined on object 'test', or you do not have permissions.

Als algemene praktijk zou u een unieke index op uw identiteitskolom maken, dit versnelt het opzoeken.

Meestal wilt u dat uw identiteitskolommen ook 'geclusterde indexen' zijn (Id int identity primary key is de snelkoppelingsnotatie), wat betekent dat de tabel op schijf wordt opgemaakt in dezelfde volgorde als uw identiteitskolom. Dit optimaliseert voor invoegingen, omdat de pagina die wordt ingevoegd zich in het geheugen bevindt. In sommige gevallen, wanneer u zeer vaak zoekacties met een bereik uitvoert op andere gegevens in de tabel, kunt u overwegen om in plaats daarvan andere kolommen te clusteren, aangezien SQL Server u slechts één geclusterde index per tabel toestaat.



  1. Gebruik PHP Carbon om tijd in seconden te verwijderen waar twee tijdsperioden elkaar overlappen

  2. Niet aangevinkt selectievakje geeft null-waarde terug

  3. Fout bij controle op door PDO opgestelde verklaringen

  4. Vergrendelt INSERT IGNORE de tafel, zelfs als het de insert negeert?