sys.sysindexes (Transact-SQL)

Dotyczy:SQL Server

Zawiera jeden wiersz dla każdego indeksu i tabeli w aktualnej bazie danych. Indeksy XML nie są obsługiwane w tym widoku. Tabele i indeksy podzielone na particje nie są w pełni obsługiwane w tym widoku; Zamiast tego użyj widoku katalogu sys.indexes .

Ważna

Ta tabela systemowa SQL Server 2000 została uwzględniona jako widok kompatybilności wstecznej. Zalecamy korzystanie z obecnych widoków systemu SQL Server zamiast tego. Aby znaleźć odpowiednik widoku lub widoków systemowych, zobacz Mapowanie tabel systemowych na widoki systemowe (Transact-SQL). Ta funkcja zostanie usunięta w przyszłej wersji programu Microsoft SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji.

Nazwa kolumny Typ danych Description
id int ID tabeli, do której należy indeks.
status int Informacje o statusie systemu.

Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
first binarny(6) Wskaż na pierwszą lub stronę główną.

Nieużywane, gdy indo = 0.

NULL = Indeks jest podzielony na partie po indo> 1.

NULL = Tabela jest podzielona, gdy indid wynosi 0 lub 1.
indo smallint Identyfikacja indeksu:

0 = Sterta

1 = Indeks klastrowany

>1 = Indeks nieklastrowany
korzeń binarny(6) Dla indid>= 1, root to wskaźnik do strony głównej.

Nieużywane, gdy indo = 0.

NULL = Indeks jest podzielony na partie po indo> 1.

NULL = Tabela jest podzielona, gdy indid wynosi 0 lub 1.
minlen smallint Minimalny rozmiar rzędu.
keycnt smallint Liczba kluczy.
Groupid smallint Identyfikator grupy plików, na której utworzono obiekt.

NULL = Indeks jest podzielony na partie po indo> 1.

NULL = Tabela jest podzielona, gdy indid wynosi 0 lub 1.
dpages int Dla indo = 0 lub indid = 1, dpages to liczba użytych stron danych.

Dla indid> 1, dpages to liczba użytych stron indeksowych.

0 = Indeks jest podzielony na partie podczas indo> 1.

0 = Tabela jest podzielona, gdy indid jest równy 0 lub 1.

Nie daje dokładnych wyników, jeśli wystąpi przepełnienie wiersza.
zastrzeżony int Dla indid = 0 lub indid = 1, zarezerwowane to liczba stron przydzielonych dla wszystkich indeksów i danych tabelowych.

Dla indo> 1, zastrzeżone to liczba stron przypisanych do indeksu.

0 = Indeks jest podzielony na partie podczas indo> 1.

0 = Tabela jest podzielona, gdy indid jest równy 0 lub 1.

Nie daje dokładnych wyników, jeśli wystąpi przepełnienie wiersza.
Używane int Dla indid = 0 lub indid = 1, używa się liczby stron użytych dla wszystkich danych indeksowych i tabelowych.

Dla indo> 1 użyta jest liczba stron użytych do indeksu.

0 = Indeks jest podzielony na partie podczas indo> 1.

0 = Tabela jest podzielona, gdy indid jest równy 0 lub 1.

Nie daje dokładnych wyników, jeśli wystąpi przepełnienie wiersza.
rowcnt bigint Liczba wierszy na poziomie danych oparta na indid = 0 i indid = 1.

0 = Indeks jest podzielony na partie podczas indo> 1.

0 = Tabela jest podzielona, gdy indid jest równy 0 lub 1.
rowmodctr int Liczy łączną liczbę wstawionych, usuniętych lub zaktualizowanych wierszy od ostatniej aktualizacji statystyk dla tabeli.

0 = Indeks jest podzielony na partie podczas indo> 1.

0 = Tabela jest podzielona, gdy indid jest równy 0 lub 1.

W SQL Server 2005 (9.x) i późniejszych rowmodctr nie jest w pełni kompatybilny z wcześniejszymi wersjami. Aby uzyskać więcej informacji zobacz uwagi.
zarezerwowany3 int Zwraca 0.

Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
reserved4 int Zwraca 0.

Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
xmaxlen smallint Maksymalny rozmiar wiersza
maxirow smallint Maksymalny rozmiar wiersza indeksowego nie-liścia.

W SQL Server 2005 (9.x) i późniejszych maxirow nie jest w pełni kompatybilny z wcześniejszymi wersjami.
OrigFillFactor tinyint Oryginalna wartość współczynnika wypełnienia użyta przy tworzeniu indeksu. Ta wartość nie jest utrzymywana; Jednak może być pomocne, jeśli musisz odtworzyć indeks i nie pamiętasz użytej wartości współczynnika wypełnienia.
StatVersion tinyint Zwraca 0.

Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
zarezerwowany2 int Zwraca 0.

Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
firstIAM binarny(6) NULL = Indeks jest podzielony na partycje.

Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
impid smallint Flaga implementacji indeksu.

Zwraca 0.

Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
Lockflags smallint Używany do ograniczenia rozważanych ziarnistości blokad dla indeksu. Na przykład, aby zminimalizować koszt blokowania, można skonfigurować tabelę lookup, która jest zasadniczo tylko do odczytu, taką wyłącznie do blokowania na poziomie tabeli.
pgmodctr int Zwraca 0.

Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
Klucze varbinary(816) Lista identyfikatorów kolumn kolumn tworzących klucz indeksowy.

Zwraca NULL.

Aby wyświetlić kolumny klucza indeksowego, użyj sys.sysindexkeys.
name sysname Nazwa indeksu lub statystyki. Zwraca NULL, gdy indo = 0. Zmodyfikuj swoją aplikację, aby szukać nazwy kopicy NULL.
statblob image Statystyka binarna obiekt dużych obiektów (BLOB).

Zwraca NULL.
maxlen int Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
Wiersze int Liczba wierszy na poziomie danych oparta na indid = 0 i indid = 1, a wartość ta jest powtarzana dla indid>1.

Remarks

Kolumny zdefiniowane jako zarezerwowane nie powinny być używane.

Kolumny dpages, reserved i used nie zwrócą dokładnych wyników, jeśli tabela lub indeks zawiera dane w jednostce alokacji ROW_OVERFLOW. Dodatkowo, liczba stron dla każdego indeksu jest śledzona osobno i nie jest agregowana dla tabeli bazowej. Aby zobaczyć liczbę stron, użyj widoków katalogu sys.allocation_units lub sys.partitions albo widoku zarządzania dynamicznego sys.dm_db_partition_stats .

W SQL Server 2000 i wcześniejszych Database Engine utrzymywał liczniki modyfikacji na poziomie wiersza. Takie liczniki są obecnie utrzymywane na poziomie kolumn. Dlatego kolumna rowmodctr jest obliczana i daje wyniki podobne do wyników z wcześniejszych wersji, ale nie są dokładne.

Jeśli użyjesz wartości w rowmodctr , aby określić, kiedy zaktualizować statystyki, rozważ następujące rozwiązania:

  • Nie należy nic robić. Nowa wartość rowmodctr często pomaga określić, kiedy zaktualizować statystyki, ponieważ zachowanie jest dość zbliżone do wyników wcześniejszych wersji.

  • Użyj AUTO_UPDATE_STATISTICS. Więcej informacji można znaleźć w sekcji Statystyka.

  • Użyj limitu czasowego, aby określić, kiedy aktualizować statystyki. Na przykład co godzinę, codziennie lub co tydzień.

  • Korzystaj z informacji na poziomie aplikacji, aby określić, kiedy zaktualizować statystyki. Na przykład za każdym razem, gdy maksymalna wartość kolumny tożsamości zmienia się o więcej niż 10 000 lub za każdym razem, gdy wykonywana jest operacja wstawiania zbiorowego.