sys.sysindexes (Transact-SQL)

Gilt für:SQL Server

Enthält eine Zeile für jeden Index und jede Tabelle in der aktuellen Datenbank. XML-Indizes werden in dieser Sicht nicht unterstützt. Partitionierte Tabellen und Indizes werden in dieser Sicht nicht vollständig unterstützt. Verwenden Sie stattdessen die sys.indexes -Katalogsicht.

Wichtig

Diese SQL Server 2000-Systemtabelle ist als Ansicht für die Abwärtskompatibilität enthalten. Es wird empfohlen, stattdessen die aktuellen SQL Server-Systemsichten zu verwenden. Informationen zum Ermitteln der entsprechenden Systemansicht oder -sichten finden Sie unter Zuordnen von Systemtabellen zu Systemsichten (Transact-SQL). Dieses Feature wird in einer künftigen Version von Microsoft SQL Server entfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden.

Spaltenname Datentyp BESCHREIBUNG
id int ID der Tabelle, zu der der Index gehört.
status int Systemstatusinformationen.

Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
first binary(6) Zeiger auf die erste Seite oder Stammseite.

Nicht verwendet, wenn indid = 0.

NULL = Index wird partitioniert, wenn 1 angegeben> wird.

NULL = Tabelle ist partitioniert, wenn indid gleich 0 oder 1.
indid smallint ID des Indexes:

0 = Heap

1 = Gruppierter Index

>1 = Nicht gruppierter Index
root binary(6) Für indid>= 1 ist root der Zeiger auf die Stammseite.

Nicht verwendet, wenn indid = 0.

NULL = Index wird partitioniert, wenn 1 angegeben> wird.

NULL = Tabelle ist partitioniert, wenn indid gleich 0 oder 1.
minlen smallint Mindestgröße einer Zeile.
keycnt smallint Anzahl der Schlüssel.
groupid smallint ID der Dateigruppe, für die das Objekt erstellt wurde.

NULL = Index wird partitioniert, wenn 1 angegeben> wird.

NULL = Tabelle ist partitioniert, wenn indid gleich 0 oder 1.
dpages int Für indid = 0 oder indid = 1 ist dpages die Anzahl der verwendeten Datenseiten.

Für indid> 1 ist dpages die Anzahl der verwendeten Indexseiten.

0 = Index wird partitioniert, wenn 1 angegeben> wird.

0 = Tabelle ist partitioniert, wenn indid gleich 0 oder 1.

Bei einem Zeilenüberlauf ist das Ergebnis ungenau.
reserved int Für indid = 0 oder indid = 1 ist reserved die Anzahl der allen Indizes und Tabellendaten zugeordneten Seiten.

Für indid> 1 ist reserviert die Anzahl der Seiten, die dem Index zugeordnet sind.

0 = Index wird partitioniert, wenn 1 angegeben> wird.

0 = Tabelle ist partitioniert, wenn indid gleich 0 oder 1.

Bei einem Zeilenüberlauf ist das Ergebnis ungenau.
used int Für indid = 0 oder indid = 1 ist used die Gesamtanzahl der für alle Indizes und Tabellendaten verwendeten Seiten.

Für indid>1 wird die Anzahl der Seiten verwendet, die für den Index verwendet werden.

0 = Index wird partitioniert, wenn 1 angegeben> wird.

0 = Tabelle ist partitioniert, wenn indid gleich 0 oder 1.

Bei einem Zeilenüberlauf ist das Ergebnis ungenau.
rowcnt bigint Zeilenanzahl auf Datenebene, basierend auf indid = 0 und indid = 1.

0 = Index wird partitioniert, wenn 1 angegeben> wird.

0 = Tabelle ist partitioniert, wenn indid gleich 0 oder 1.
rowmodctr int Zählt die Gesamtzahl der eingefügten, gelöschten oder aktualisierten Zeilen, seitdem die Statistiken für die Tabelle zuletzt aktualisiert wurden.

0 = Index wird partitioniert, wenn 1 angegeben> wird.

0 = Tabelle ist partitioniert, wenn indid gleich 0 oder 1.

In SQL Server 2005 (9.x) und höher ist rowmodctr nicht vollständig mit früheren Versionen kompatibel. Weitere Informationen finden Sie in den Hinweisen.
reserved3 int Gibt 0 zurück.

Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
reserved4 int Gibt 0 zurück.

Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
xmaxlen smallint Maximale Größe einer Zeile
maxirow smallint Maximale Größe einer Indexzeile, die kein Blatt darstellt.

In SQL Server 2005 (9.x) und höher ist maxirow nicht vollständig mit früheren Versionen kompatibel.
OrigFillFactor tinyint Ursprünglicher Füllfaktorwert, der beim Erstellen des Indexes verwendet wurde. Dieser Wert wird nicht aufrechterhalten, kann jedoch hilfreich sein, wenn Sie einen Index neu erstellen müssen und sich nicht an den verwendeten Füllfaktorwert erinnern.
StatVersion tinyint Gibt 0 zurück.

Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
reserviert2 int Gibt 0 zurück.

Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
FirstIAM binary(6) NULL = Index ist partitioniert.

Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
impid smallint Indeximplementierungsflag.

Gibt 0 zurück.

Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
lockflags smallint Wird zur Einschränkung der berücksichtigten Granularitäten von Sperren für einen Index verwendet. Beispielsweise könnte zur Minimierung der Sperrkosten eine Nachschlagetabelle, die im Wesentlichen schreibgeschützt ist, so eingerichtet werden, dass die Sperrung nur auf Tabellenebene erfolgt.
pgmodctr int Gibt 0 zurück.

Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
keys varbinary(816) Liste der Spalten-IDs der Spalten, aus denen der Indexschlüssel besteht.

Gibt NULL zurück.

Verwenden Sie zum Anzeigen der Indexschlüsselspalten sys.sysindexkeys.
name sysname Name des Indexes oder der Statistik. Gibt NULL zurück, wenn indid = 0. Ändern Sie die Anwendung so, dass nach einem Heapnamen mit dem Wert NULL gesucht wird.
statblob image Statistik-BLOB (Binary Large Object).

Gibt NULL zurück.
maxlen int Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
rows int Zeilenanzahl auf Datenebene basierend auf indid = 0 und indid = 1, und der Wert wird für indid>1 wiederholt.

Bemerkungen

Als reserviert definierte Spalten sollten nicht verwendet werden.

Die Spalten dpages, reservedund used geben keine genauen Ergebnisse zurück, wenn die Tabelle bzw. der Index Daten in der ROW_OVERFLOW-Zuordnungseinheit enthält. Zudem werden die Seitenanzahlen aller Indizes separat nachverfolgt und nicht für die Basistabelle aggregiert. Verwenden Sie zum Anzeigen der Seitenanzahlen die Katalogsichten sys.allocation_units oder sys.partitions oder die dynamische Verwaltungssicht sys.dm_db_partition_stats .

In SQL Server 2000 und früheren Versionen verwaltete die Datenbank-Engine Änderungsindikatoren auf Zeilenebene. Solche Zähler werden nun auf Spaltenebene verwaltet. Daher wird die rowmodctr -Spalte ähnlich wie in früheren Versionen berechnet und erzeugt ähnliche Ergebnisse. Diese sind jedoch nicht genau.

Wenn Sie mit dem Wert in rowmodctr den Zeitpunkt des Statistikupdates bestimmen möchten, können Sie folgende Lösungen in Betracht ziehen:

  • Sie unternehmen nichts. Der neue rowmodctr -Wert hilft Ihnen häufig dabei, den Zeitpunkt für das Statistikupdate zu bestimmen, da das Verhalten weitgehend dem Ergebnis früherer Versionen gleicht.

  • Verwenden Sie AUTO_UPDATE_STATISTICS. Weitere Informationen finden Sie unter Statistiken.

  • Verwenden Sie ein Zeitlimit, um den Zeitpunkt für das Statistikupdate zu bestimmen. Beispielsweise jede Stunde, jeden Tag oder jede Woche.

  • Verwenden Sie Informationen auf Anwendungsebene, um den Zeitpunkt für das Statistikupdate zu bestimmen. Beispielsweise jedes Mal, wenn sich der Maximalwert einer identity -Spalte um mehr als 10.000 ändert oder wenn ein Masseneinfügungsvorgang ausgeführt wird.

Weitere Informationen

Katalogsichten (Transact-SQL)
Zuordnen von Systemtabellen zu Systemsichten (Transact-SQL)
sys.indexes (Transact-SQL)