Udostępnij za pomocą


sys.indexes (Transact-SQL)

Dotyczy do:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSystem Platform Analitycznych (PDW)Baza danych SQL w Microsoft Fabric

Zawiera wiersz na indeks lub stertę obiektu tabelarycznego, takiego jak tabela, widok lub funkcja wartości tabeli.

Nazwa kolumny Typ danych Description
object_id int Identyfikator obiektu, do którego należy ten indeks.
name sysname Nazwa indeksu. nazwa jest unikatowa tylko w obrębie obiektu.

NULL = sterta
index_id int Identyfikator indeksu. index_id jest unikatowa tylko w obrębie obiektu.

0 = Sterta
1 = Indeks klastrowany
> 1 = indeks nieklastrowany
type tinyint Typ indeksu:

0 = Sterta
1 = Klasterowany magazyn wierszy (B-tree)
2 = Nieklastrowany magazyn wierszy (drzewo B)
3 = XML
4 = Przestrzenne
5 = Klasterowany indeks magazynu kolumn 2
6 = Nieklastrowany indeks magazynu kolumn 1
7 = Indeks skrótu nieklastrowanego 2
9 = JSON 5
type_desc nvarchar(60) Opis typu indeksu:

-KUPA
-KLASTROWANY
- NIEKLASTROWANE
-XML
-PRZESTRZENNY
- KLASTROWANY MAGAZYN KOLUMN 2
- NIEKLASTROWANY MAGAZYN KOLUMN 1
- SKRÓT NIEKLASTROWANY 2, 8
- JSON 5
is_unique bit 1 = Indeks jest unikatowy.
0 = Indeks nie jest unikatowy.

Zawsze 0 dla klastrowanych indeksów magazynu kolumn.
data_space_id int Identyfikator przestrzeni danych dla tego indeksu. Przestrzeń danych jest grupą plików lub schematem partycji.

0 = object_id jest funkcją wartości tabeli lub indeksem w pamięci.
ignore_dup_key bit 1 = IGNORE_DUP_KEY jest WŁĄCZONE.
0 = IGNORE_DUP_KEY jest wyłączona.
is_primary_key bit 1 = Indeks jest częścią ograniczenia KLUCZA PODSTAWOWEgo.

Zawsze 0 dla klastrowanych indeksów magazynu kolumn.
is_unique_constraint bit 1 = Indeks jest częścią ograniczenia UNIQUE.

Zawsze 0 dla klastrowanych indeksów magazynu kolumn.
fill_factor tinyint > 0 = procent FILLFACTOR używany podczas tworzenia lub odbudowy indeksu.
0 = wartość domyślna

Zawsze 0 dla klastrowanych indeksów magazynu kolumn.
is_padded bit 1 = PADINDEX jest włączony.
0 = PADINDEX jest WYŁĄCZONA.

Zawsze 0 dla klastrowanych indeksów magazynu kolumn.
is_disabled bit 1 = Indeks jest wyłączony.
0 = Indeks nie jest wyłączony.
is_hypothetical bit 1 = Indeks jest hipotetyczny i nie można go używać bezpośrednio jako ścieżki dostępu do danych. Hipotetyczne indeksy przechowują statystyki na poziomie kolumny.

0 = Indeks nie jest hipotetyczny.
allow_row_locks bit 1 = Indeks zezwala na blokady wierszy.
0 = Indeks nie zezwala na blokady wierszy.

Zawsze 0 dla klastrowanych indeksów magazynu kolumn.
allow_page_locks bit 1 = Indeks zezwala na blokady strony.
0 = Indeks nie zezwala na blokady stron.

Zawsze 0 dla klastrowanych indeksów magazynu kolumn.
has_filter bit 1 = Indeks zawiera filtr i zawiera tylko wiersze spełniające definicję filtru.
0 = Indeks nie ma filtru.
filter_definition nvarchar(max) Wyrażenie dla podzbioru wierszy uwzględnionych w filtrowanym indeksie.

Wartość NULL dla sterta, indeksu niefiltrowanego lub niewystarczające uprawnienia w tabeli.
compression_delay int > 0 = Opóźnienie kompresji indeksu magazynu kolumn określone w minutach.

NULL = Opóźnienie kompresji grupy wierszy indeksu magazynu kolumn jest zarządzane automatycznie.
suppress_dup_key_messages 3, 6, 7 bit 1 = Indeks jest skonfigurowany do pomijania zduplikowanych komunikatów kluczy podczas operacji ponownego kompilowania indeksu.

0 = Indeks nie jest skonfigurowany do pomijania zduplikowanych komunikatów kluczy podczas operacji ponownego kompilowania indeksu.
auto_created 6 bit 1 = Indeks został utworzony przez automatyczne dostrajanie.
0 = Indeks został utworzony przez użytkownika.
optimize_for_sequential_key 4, 6, 7 bit 1 = Indeks ma włączoną optymalizację wstawiania ostatniej strony.
0 = wartość domyślna. Indeks ma wyłączoną optymalizację wstawiania ostatniej strony.

1Dotyczy: SQL Server 2012 (11.x) i nowsze wersje.

2Dotyczy: SQL Server 2014 (12.x) i nowsze wersje.

3Dotyczy: SQL Server 2017 (14.x) i nowsze wersje.

4Dotyczy: SQL Server 2019 (15.x) i nowsze wersje.

5Dotyczy SQL Server 2025 (17.x) i późniejszych wersji.

6Dotyczy: Azure SQL Database.

7Dotyczy: Azure SQL Managed Instance.

8NONCLUSTERED HASH indeksów jest obsługiwanych tylko w tabelach zoptymalizowanych pod kątem pamięci. Widok sys.hash_indexes przedstawia bieżące indeksy skrótów i właściwości skrótu. Aby uzyskać więcej informacji, zobacz sys.hash_indexes.

Permissions

Widoczność metadanych w widokach katalogu jest ograniczona do obiektów, których właścicielem jest użytkownik lub w stosunku do których użytkownik ma jakieś uprawnienia. Aby uzyskać więcej informacji, zobacz Konfiguracja widoczności metadanych.

Examples

Poniższy przykład zwraca wszystkie indeksy dla tabeli Production.Product w bazie AdventureWorks2025.

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