sys.sysindexes (Transact-SQL)

Gäller för:SQL Server

Innehåller en rad för varje index och tabell i den aktuella databasen. XML-index stöds inte i denna vy. Partitionerade tabeller och index stöds inte fullt ut i denna vy; Använd istället sys.indexes katalogvy.

Important

Denna SQL Server 2000-systemtabell ingår som en vy för bakåtkompatibilitet. Vi rekommenderar att du istället använder de nuvarande SQL Server-systemvyerna. För att hitta motsvarande systemvy eller vyer, se Mappning av systemtabeller till systemvyer (Transact-SQL). Den här funktionen tas bort i en framtida version av Microsoft SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen.

Kolumnnamn Datatyp Description
id int ID för tabellen som indexet tillhör.
Status int Systemstatusinformation.

Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
first binär(6) Pekare till första eller rotsidan.

Ej använd när indid = 0.

NULL = Index partitioneras när indo> 1.

NULL = Tabellen är uppdelad när indid är 0 eller 1.
indid smallint ID för indexet:

0 = Heap

1 = Klustrat index

>1 = Icke-klustrat index
rot binär(6) För indid>= 1 är roten pekaren till rotsidan.

Ej använd när indid = 0.

NULL = Index partitioneras när indo> 1.

NULL = Tabellen är uppdelad när indid är 0 eller 1.
Minlen smallint Minsta storlek på en rad.
Keycnt smallint Antal nycklar.
Groupid smallint Filgrupps-ID där objektet skapades.

NULL = Index partitioneras när indo> 1.

NULL = Tabellen är uppdelad när indid är 0 eller 1.
dpages int För indid = 0 eller indid = 1 är dpages antalet använda datasidor.

För indid> 1 är dpages antalet indexsidor som används.

0 = Index är partitionerat när indid> 1.

0 = Tabellen är partitionerad när indid är 0 eller 1.

Ger inte exakta resultat om radöverflöd inträffar.
reserverad int För indid = 0 eller indid = 1 är reserverat antalet sidor som tilldelats alla index och tabelldata.

För indid> 1 är reserverat antalet sidor avsatta för indexet.

0 = Index är partitionerat när indid> 1.

0 = Tabellen är partitionerad när indid är 0 eller 1.

Ger inte exakta resultat om radöverflöd inträffar.
Används int För indid = 0 eller indid = 1 används antalet sidor som används för all index- och tabelldata.

För indid> 1 används antalet sidor som användes för indexet.

0 = Index är partitionerat när indid> 1.

0 = Tabellen är partitionerad när indid är 0 eller 1.

Ger inte exakta resultat om radöverflöd inträffar.
rowcnt bigint Datanivåradräkning baserad på indid = 0 och indid = 1.

0 = Index är partitionerat när indid> 1.

0 = Tabellen är partitionerad när indid är 0 eller 1.
rowmodctr int Räknar det totala antalet insatta, borttagna eller uppdaterade rader sedan senaste gången statistiken uppdaterades för tabellen.

0 = Index är partitionerat när indid> 1.

0 = Tabellen är partitionerad när indid är 0 eller 1.

I SQL Server 2005 (9.x) och senare är rowmodctr inte fullt kompatibelt med tidigare versioner. Mer information finns i Anmärkningar.
reserverad3 int Returnerar 0.

Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
reserverad4 int Returnerar 0.

Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
xmaxlen smallint Maximal storlek på en rad
Maxirow smallint Maximal storlek på en rad utan bladindex.

I SQL Server 2005 (9.x) och senare är maxirow inte fullt kompatibelt med tidigare versioner.
OrigFillFactor tinyint Ursprungligt fyllnadsfaktorvärde som användes när indexet skapades. Detta värde upprätthålls inte; Det kan dock vara hjälpsamt om du måste skapa om ett index och inte minns värdet på fyllnadsfaktorn som användes.
StatVersion tinyint Returnerar 0.

Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
reserverad2 int Returnerar 0.

Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
FirstIAM binär(6) NULL = Indexet är partitionerat.

Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
impid smallint Indeximplementeringsflagga.

Returnerar 0.

Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
lockflags smallint Används för att begränsa de beaktade låsgranulariteterna för ett index. Till exempel, för att minimera låskostnaden, skulle en uppslagstabell som i princip är skrivskyddad kunna konfigureras för att endast göra tabellnivålåsning.
pgmodctr int Returnerar 0.

Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
Nycklar varbinär (816) Lista över kolumn-ID:n för kolumnerna som utgör indexnyckeln.

Returnerar NULL.

För att visa indexnyckelkolumnerna, använd sys.sysindexkeys.
name sysname Namnet på indexet eller statistiken. Returnerar NULL när indid = 0. Modifiera din applikation för att leta efter ett NULL-heapnamn.
statblob image Statistik binära stort objekt (BLOB).

Returnerar NULL.
Maxlen int Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.
rader int Datanivå-radräkning baserad på indid = 0 och indid = 1, och värdet upprepas för indid>1.

Remarks

Kolumner definierade som reserverade bör inte användas.

Kolumnerna dpages, reserverade och använda kommer inte att ge korrekta resultat om tabellen eller indexet innehåller data i ROW_OVERFLOW allokeringsenheten. Dessutom spåras sidantalet för varje index separat och aggregeras inte för bastabellen. För att se sidantal, använd katalogvyerna sys.allocation_units eller sys.partitions , eller sys.dm_db_partition_stats dynamisk hanteringsvy.

I SQL Server 2000 och tidigare upprätthöll Database Engine radnivå-modifieringsräknare. Sådana räknare hålls nu på kolumnnivå. Därför beräknas kolumnen rowmodctr och ger resultat som liknar resultaten i tidigare versioner, men som inte är exakta.

Om du använder värdet i rowmodctr för att avgöra när statistiken ska uppdateras, överväg följande lösningar:

  • Gör ingenting. Det nya rowmodctr-värdet hjälper dig ofta att avgöra när statistiken ska uppdateras eftersom beteendet ligger ganska nära resultaten från tidigare versioner.

  • Använd AUTO_UPDATE_STATISTICS. För mer information, se Statistik.

  • Använd en tidsgräns för att avgöra när statistiken ska uppdateras. Till exempel varje timme, varje dag eller varje vecka.

  • Använd applikationsnivåinformation för att avgöra när statistiken ska uppdateras. Till exempel varje gång det maximala värdet i en identitetskolumn ändras med mer än 10 000, eller varje gång en bulkinsättningsoperation utförs.