sys.indexes (Transact-SQL)

Anwendungsbereich: JaSQL Server (alle unterstützten Versionen) JaAzure SQL-Datenbank JaVerwaltete Azure SQL-Instanz JaAzure Synapse Analytics JaParallel Data Warehouse

Enthält eine Zeile pro Index oder Heap eines tabellarischen Objekts, wie z. B. einer Tabelle, Sicht oder Tabellenwertfunktion.

Spaltenname Datentyp Beschreibung
object_id int ID des Objekts, zu dem dieser Index gehört.
name sysname Name des Indexes. name ist nur innerhalb des -Objekts eindeutig.

NULL = Heap
index_id int Die ID des Index. index_id ist nur innerhalb des -Objekts eindeutig.

0 = Heap

1 oder 5 = Gruppierter Index (B-Struktur, Columnstore)

> 1 und <> 5 = Nicht gruppierter Index
type tinyint Typ des Index:

0 = Heap

1 = In einem Cluster gruppiert

2 = Nicht gruppiert

3 = XML

4 = Räumlich

5 = Gruppierter Columnstore-Index. Gilt für: SQL Server 2014 (12.x) und höher.

6 = Nicht gruppierter Columnstore-Index. Gilt für: SQL Server 2012 (11.x) und höher.

7 = Nicht gruppierter Hashindex. Gilt für: SQL Server 2014 (12.x) und höher.
type_desc nvarchar(60) Beschreibung des Typs des Index:

HEAP

CLUSTERED

NONCLUSTERED

XML

SPATIAL

CLUSTERED COLUMNSTORE: Gilt für: SQL Server 2014 (12.x) und höher.

NONCLUSTERED COLUMNSTORE: Gilt für: SQL Server 2012 (11.x) und höher.

NONCLUSTERED HASH: NONCLUSTERED HASH-Indizes werden nur für speicheroptimierte Tabellen unterstützt. Die sys.hash_indexes-Sicht zeigt die aktuellen Hashindizes und Hasheigenschaften an. Weitere Informationen finden Sie unter sys.hash_indexes (Transact-SQL). Gilt für: SQL Server 2014 (12.x) und höher.
is_unique bit 1 = Der Index ist eindeutig.

0 = Der Index ist nicht eindeutig.

Immer 0 für gruppierte columnstore-Indizes.
data_space_id int ID des Datenspeicherplatzes für diesen Index. Der Datenspeicherplatz ist entweder eine Dateigruppe oder ein Partitionsschema.

0 = object_id ist eine Tabellenwertfunktion oder ein In-Memory-Index.
ignore_dup_key bit 1 = IGNORE_DUP_KEY ist ON.

0 = IGNORE_DUP_KEY ist OFF.
is_primary_key bit 1 = Der Index ist Teil einer PRIMARY KEY-Einschränkung.

Immer 0 für gruppierte columnstore-Indizes.
is_unique_constraint bit 1 = Der Index ist Teil einer UNIQUE-Einschränkung.

Immer 0 für gruppierte columnstore-Indizes.
fill_factor tinyint > 0 = FILLFACTOR-Prozentsatz, der beim Erstellen oder Neu erstellen des Indexes verwendet wurde.

0 = Standardwert

Immer 0 für gruppierte columnstore-Indizes.
is_padded bit 1 = PADINDEX ist ON.

0 = PADINDEX ist OFF.

Immer 0 für gruppierte columnstore-Indizes.
is_disabled bit 1 = Der Index ist deaktiviert.

0 = Der Index ist nicht deaktiviert.
is_hypothetical bit 1 = Der Index ist hypothetisch und kann nicht direkt als Datenzugriffspfad verwendet werden. Hypothetische Indizes enthalten Statistiken auf Spaltenebene.

0 = Der Index ist nicht hypothetisch.
Allow_row_locks bit 1 = Der Index lässt Zeilensperren zu.

0 = Der Index lässt Zeilensperren nicht zu.

Immer 0 für gruppierte columnstore-Indizes.
allow_page_locks bit 1 = Der Index lässt Seitensperren zu.

0 = Der Index lässt Seitensperren nicht zu.

Immer 0 für gruppierte columnstore-Indizes.
has_filter bit 1 = Index hat einen Filter und enthält nur Zeilen, die der Filterdefinition entsprechen.

0 = Index hat keinen Filter.
filter_definition nvarchar(max) Ausdruck für die Teilmenge von Zeilen, die im gefilterten Index enthalten sind.

NULL für Heap, nicht gefilterten Index oder unzureichende Berechtigungen für die Tabelle.
compression_delay int > 0 = Columnstore-Indexkomprimierungsverzögerung in Minuten angegeben.

NULL = Die Komprimierungsverzögerung der Columnstore-Indexzeilengruppe wird automatisch verwaltet.
suppress_dup_key_messages bit 1 = Index ist so konfiguriert, dass meldungen doppelter Schlüssel während eines Index-Neuerstellungsvorgang unterdrückt werden.

0 = Der Index ist nicht so konfiguriert, dass meldungen mit doppelten Schlüsseln während eines Index-Neuerstellungsvorgang unterdrückt werden.

Gilt für: SQL Server (Ab SQL Server 2017 (14.x) ), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
auto_created bit 1 = Index wurde von der automatischen Optimierung erstellt.

0 = Der Index wurde vom Benutzer erstellt.

Gilt für: Azure SQL-Datenbank
optimize_for_sequential_key bit 1 = Für den Index ist die Optimierung für ein Einfügen auf der letzten Seite aktiviert.

0 = Standardwert. Für den Index ist die Optimierung für ein Einfügen auf der letzten Seite deaktiviert.

Gilt für: SQL Server (Ab SQL Server 2019 (15.x) ), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz

Berechtigungen

Die Sichtbarkeit der Metadaten in Katalogsichten ist auf sicherungsfähige Elemente eingeschränkt, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Metadata Visibility Configuration.

Beispiele

Im folgenden Beispiel werden alle Indizes für die Tabelle Production.Product in der -Datenbank AdventureWorks2012 zurückgegeben.

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  

Weitere Informationen

Katalogsichten für Objekte (Transact-SQL)
Katalogsichten (Transact-SQL)
sys.index_columns (Transact-SQL)
sys.xml_indexes (Transact-SQL)
sys.objects (Transact-SQL)
sys.key_constraints (Transact-SQL)
sys.filegroups (Transact-SQL)
sys.partition_schemes (Transact-SQL)
Abfragen des SQL Server Systemkatalogs – häufig gestellte Fragen
In-Memory-OLTP (Arbeitsspeicheroptimierung)