sys.indexes (Transact-SQL)
Gilt für: SQL Server Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Platform System (PDW)
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 = Gruppierter Index > 1 = Nicht gruppierter Index |
type | tinyint | Typ des Index: 0 = Heap 1 = Gruppierter Rowstore (B-Tree) 2 = Nicht gruppierter Rowstore (B-Struktur) 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. NICHTCLUSTERED HASH: NICHTCLUSTERED HASH-Indizes werden nur für speicheroptimierte Tabellen unterstützt. Die sys.hash_indexes Ansicht zeigt die aktuellen Hashindizes und die 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 gefilterter Index oder unzureichende Berechtigungen für die Tabelle. |
compression_delay | int | > 0 = Columnstore-Indexkomprimierungsverzögerung in Minuten angegeben. NULL = Rowgroup-Komprimierungsverzögerung des Columnstore-Indexes wird automatisch verwaltet. |
suppress_dup_key_messages | bit | 1 = Index ist so konfiguriert, dass doppelte Schlüsselmeldungen während eines Indexneuerstellungsvorgangs unterdrückt werden. 0 = Index ist nicht so konfiguriert, dass doppelte Schlüsselmeldungen während eines Indexneuerstellungsvorgangs unterdrückt werden. Gilt für: SQL Server (ab SQL Server 2017 (14.x)), Azure SQL Datenbank und Azure SQL Managed Instance |
auto_created | bit | 1 = Index wurde durch die automatische Optimierung erstellt. 0 = Index wurde vom Benutzer erstellt. Gilt für: Azure SQL-Datenbank |
optimize_for_sequential_key | bit | 1 = Index hat die Optimierung für das Einfügen der letzten Seite aktiviert. 0 = Standardwert. Bei Index ist die Optimierung für das Einfügen der letzten Seite deaktiviert. Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL Datenbank und Azure SQL Managed Instance |
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 AdventureWorks2019-Datenbank 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
Nächste Schritte
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)
FAQ: Abfragen des SQL Server-Systemkatalogs
In-Memory OLTP (In-Memory Optimization)