Dela via


sys.indexes (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-databas i Microsoft Fabric

Innehåller en rad per index eller heap för ett tabellobjekt, till exempel en tabell, vy eller tabellvärdesfunktion.

Kolumnnamn Datatyp Beskrivning
object_id Int ID för det objekt som det här indexet tillhör.
Namn sysname Indexets namn. name är bara unikt i objektet.

NULL = Heap
index_id Int ID för indexet. index_id är bara unikt i objektet.

0 = Heap

1 = Klustrat index

> 1 = Icke-grupperat index
typ tinyint Typ av index:

0 = Heap

1 = Grupperat radarkiv (B-träd)

2 = Icke-grupperat radarkiv (B-träd)

3 = XML

4 = Spatial

5 = Grupperat kolumnlagringsindex. gäller för: SQL Server 2014 (12.x) och senare.

6 = Icke-grupperat kolumnlagringsindex. gäller för: SQL Server 2012 (11.x) och senare.

7 = Icke-klustrade hashindex. gäller för: SQL Server 2014 (12.x) och senare.
9 = JSON gäller för: SQL Server 2025 (17.x) Förhandsversion
type_desc nvarchar(60) Beskrivning av indextyp:

HÖG

KLUSTRADE

NONCLUSTERED

XML

RUMSLIG

CLUSTERED COLUMNSTORE – Gäller för: SQL Server 2014 (12.x) och senare.

NONCLUSTERED COLUMNSTORE – gäller för: SQL Server 2012 (11.x) och senare.

NONCLUSTERED HASH: NONCLUSTERED HASH-index stöds endast i minnesoptimerade tabeller. Vyn sys.hash_indexes visar aktuella hash-index och hash-egenskaperna. Mer information finns i sys.hash_indexes (Transact-SQL). gäller för: SQL Server 2014 (12.x) och senare.
JSON gäller för: Förhandsversion av SQL Server 2025 (17.x)
is_unique bit 1 = Index är unikt.

0 = Index är inte unikt.

Alltid 0 för grupperade kolumnlagringsindex.
data_space_id Int ID för datautrymmet för det här indexet. Datautrymme är antingen ett filgrupps- eller partitionsschema.

0 = object_id är en tabellvärdesfunktion eller minnesinternt index.
ignore_dup_key bit 1 = IGNORE_DUP_KEY är PÅ.

0 = IGNORE_DUP_KEY är AV.
is_primary_key bit 1 = Index är en del av en PRIMARY KEY-begränsning.

Alltid 0 för grupperade kolumnlagringsindex.
is_unique_constraint bit 1 = Index är en del av en UNIK begränsning.

Alltid 0 för grupperade kolumnlagringsindex.
fill_factor tinyint > 0 = FILLFACTOR-procentandel som användes när indexet skapades eller återskapades.

0 = Standardvärde

Alltid 0 för grupperade kolumnlagringsindex.
is_padded bit 1 = PADINDEX är PÅ.

0 = PADINDEX är AV.

Alltid 0 för grupperade kolumnlagringsindex.
is_disabled bit 1 = Index är inaktiverat.

0 = Index är inte inaktiverat.
is_hypothetical bit 1 = Index är hypotetiskt och kan inte användas direkt som en dataåtkomstsökväg. Hypotetiska index innehåller statistik på kolumnnivå.

0 = Index är inte hypotetiskt.
allow_row_locks bit 1 = Index tillåter radlås.

0 = Index tillåter inte radlås.

Alltid 0 för grupperade kolumnlagringsindex.
allow_page_locks bit 1 = Index tillåter sidlås.

0 = Index tillåter inte sidlås.

Alltid 0 för grupperade kolumnlagringsindex.
has_filter bit 1 = Index har ett filter och innehåller endast rader som uppfyller filterdefinitionen.

0 = Index har inget filter.
filter_definition nvarchar(max) Uttryck för delmängden av rader som ingår i det filtrerade indexet.

NULL för heap, icke-filtrerat index eller otillräckliga behörigheter i tabellen.
compression_delay Int > 0 = Kolumnlagringsindexkomprimeringsfördröjning som anges i minuter.

NULL = Columnstore index rowgroup compression delay hanteras automatiskt.
suppress_dup_key_messages bit 1 = Index har konfigurerats för att förhindra duplicerade nyckelmeddelanden under en indexuppbyggnadsåtgärd.

0 = Index har inte konfigurerats för att förhindra duplicerade nyckelmeddelanden under en indexuppbyggnadsåtgärd.

Gäller för: SQL Server (från och med SQL Server 2017 (14.x)), Azure SQL Database och Azure SQL Managed Instance
auto_created bit 1 = Index skapades av den automatiska justeringen.

0 = Index skapades av användaren.

gäller för: Azure SQL Database
optimize_for_sequential_key bit 1 = Index har optimering av infogning på sista sidan aktiverat.

0 = Standardvärde. Index har inaktiverat infogningsoptimering på sista sidan.

Gäller för: SQL Server (från och med SQL Server 2019 (15.x)), Azure SQL Database och Azure SQL Managed Instance

Behörigheter

Synligheten för metadata i katalogvyer är begränsad till skyddsbara objekt som en användare antingen äger eller som användaren har beviljats viss behörighet för. För mer information, se inställningar för metadatasynlighet.

Exempel

I följande exempel returneras alla index för tabellen Production.Product i databasen AdventureWorks2022.

SELECT i.name AS index_name  
    ,i.type_desc  
    ,is_unique  
    ,ds.type_desc AS filegroup_or_partition_scheme  
    ,ds.name AS filegroup_or_partition_scheme_name  
    ,ignore_dup_key  
    ,is_primary_key  
    ,is_unique_constraint  
    ,fill_factor  
    ,is_padded  
    ,is_disabled  
    ,allow_row_locks  
    ,allow_page_locks  
FROM sys.indexes AS i  
INNER JOIN sys.data_spaces AS ds ON i.data_space_id = ds.data_space_id  
WHERE is_hypothetical = 0 AND i.index_id <> 0   
AND i.object_id = OBJECT_ID('Production.Product');  
GO  

Nästa steg

objektkatalogvyer (Transact-SQL)
katalogvyer (Transact-SQL)
sys.index_columns (Transact-SQL)
sys.xml_index (Transact-SQL)
sys.objects (Transact-SQL)
sys.key_constraints (Transact-SQL)
sys.filegroups (Transact-SQL)
sys.partition_schemes (Transact-SQL)
frågor och svar om SQL Server System Catalog
In-Memory OLTP (In-Memory optimering)