Indexes

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Tillgängliga indextyper

I följande tabell visas de typer av index som är tillgängliga i SQL Server och innehåller länkar till ytterligare information.

Indextyp Description Ytterligare information
Hash Med ett hash-index används data via en minnesburen hash-tabell. Hash-index förbrukar en fast mängd minne, vilket är en funktion av antalet bucketar. Index för Memory-Optimized-tabeller

Designriktlinjer för hashindex
minnesoptimerad icke-lustererad För minnesoptimerade icke-illustrerade index är minnesförbrukning en funktion av radantalet och storleken på indexnyckelkolumnerna Index för Memory-Optimized-tabeller

Riktlinjer för minnesoptimerad icke-klustrad indexdesign
Clustered Ett grupperat index sorterar och lagrar dataraderna i tabellen eller vyn i ordning baserat på den klustrade indexnyckeln. Det klustrade indexet implementeras som en B-trädsindexstruktur som stöder snabb hämtning av raderna, baserat på de klustrade indexnyckelvärdena. Grupperade och icke-grupperade index

Skapa ett grupperat index

Designriktlinjer för klustrat index
Nonclustered Ett icke-grupperat index kan definieras i en tabell eller vy med ett grupperat index eller en heap. Varje indexrad i det icke-klustrade indexet innehåller det icke-klustrade nyckelvärdet och en radlokaliserare. Den här lokaliseraren pekar på dataraden i det klustrade indexet eller heapen med nyckelvärdet. Raderna i indexet lagras i ordningen för indexnyckelvärdena, men dataraderna garanteras inte vara i någon viss ordning om inte ett klustrat index skapas i tabellen. Grupperade och icke-grupperade index

Skapa icke-illustrerade index

Riktlinjer för icke-indexdesign
Unique Ett unikt index säkerställer att indexnyckeln inte innehåller några duplicerade värden och därför är varje rad i tabellen eller vyn på något sätt unik.

Unikhet kan vara en egenskap för både klustrade och icke-grupperade index.
Skapa ett unikt index

Designriktlinjer för unikt index
Columnstore Ett minnesinternt kolumnlagringsindex lagrar och hanterar data med hjälp av kolumnbaserad datalagring och kolumnbaserad frågebearbetning.

Kolumnlagringsindex fungerar bra för datalagerarbetsbelastningar som främst utför massinläsningar och skrivskyddade frågor. Använd columnstore-indexet för att uppnå upp till 10 x frågeprestandavinster jämfört med traditionell radorienterad lagring och upp till 7 x datakomprimering över den okomprimerade datastorleken.
Columnstore-indexar: översikt

Designriktlinjer för Columnstore-index
Index med inkluderade kolumner Ett icke-grupperat index som utökas till att omfatta icke-nyckelkolumner utöver nyckelkolumnerna. Skapa index med inkluderade kolumner
Index på beräknade kolumner Ett index på en kolumn som härleds från värdet för en eller flera andra kolumner eller vissa deterministiska indata. Indexar på beräknade kolumner
Filtered Ett optimerat icke-grupperat index som passar särskilt bra för frågor som väljs från en väldefinierad delmängd av data. Den använder ett filterpredikat för att indexera en del rader i tabellen. Ett väldesignat filtrerat index kan förbättra frågeprestanda, minska kostnaderna för indexunderhåll och minska kostnaderna för indexlagring jämfört med fullständiga tabellindex. Skapa filtrerade index

Designriktlinjer för filtrerat index
Spatial Ett rumsligt index ger möjlighet att utföra vissa åtgärder mer effektivt på rumsliga objekt (rumsliga data) i en kolumn av datatypen geometri . Det rumsliga indexet minskar antalet objekt som relativt kostsamma rumsliga åtgärder behöver tillämpas på. Översikt över spatiala index
XML En strimlad och beständig representation av XML-binäriska stora objekt (BLOB:er) i datatypkolumnen xml. XML-index (SQL Server)
Fulltext En särskild typ av tokenbaserat funktionellt index som skapas och underhålls av Microsoft Full-Text Engine för SQL Server. Det ger effektivt stöd för avancerade ordsökningar i teckensträngsdata. Fyll i Full-Text index

Note

I dokumentationen används termen B-träd vanligtvis som referens till index. I radlagringsindex implementerar databasmotorn ett B+-träd. Detta gäller inte för kolumnlagringsindex eller index i minnesoptimerade tabeller. Mer information finns i arkitekturen och designguiden för SQL Server och Azure SQL-index.