sys.dm_db_index_operational_stats (Transact-SQL)

Zwraca bieżącą niskiego poziom we/wy, blokowania, latching i operacje przy użyciu metoda dostępu dla każdej partycji tabela lub indeksu w bazie danych.

Topic link iconKonwencje składni języka Transact-SQL

sys.dm_db_index_operational_stats (
    { database_id | NULL | 0 | DEFAULT }
    , { object_id | NULL | 0 | DEFAULT }
    , { index_id | 0 | NULL | -1 | DEFAULT }
    , { partition_number | NULL | 0 | DEFAULT }
)

Argumenty

  • database_id | NULL | 0 | DOMYŚLNE
    ID of the database.database_id is smallint.Prawidłowe dane wejściowe są numer identyfikacyjny bazy danych, wartość NULL, 0 lub DEFAULT.Wartość domyślna to 0.Wartością tą jest NULL, 0, a DEFAULT są równoważne wartości w tym kontekście.

    Należy określić wartość NULL, aby przywrócić informacje w przypadku wszystkich baz danych w wystąpieniu programu SQL Server. Jeżeli określono wartość NULL dla database_id, należy także określić wartość NULL dla object_id, index_id, a partition_number.

    Wbudowanej funkcja DB_ID może być określony.W przypadku korzystania z DB_ID bez określania nazwy bazy danych, poziom zgodności z bieżącej bazy danych musi być 90.

  • object_id | NULL | 0 | DOMYŚLNE
    Object ID of the table or view the index is on.object_id is int.

    Prawidłowe dane wejściowe są identyfikator tabela i w widoku, NULL, 0 lub DEFAULT.Wartość domyślna to 0.Wartością tą jest NULL, 0, a DEFAULT są równoważne wartości w tym kontekście.

    Należy określić wartość NULL, zwraca buforowane informacje dla wszystkich tabel i widoków w określonej bazie danych.Jeżeli określono wartość NULL dla object_id, należy także określić wartość NULL dla index_id i partition_number.

  • index_id | 0 | NULL | -1 | DOMYŚLNE
    ID of the index.index_id is int.Prawidłowe dane wejściowe są numer identyfikacyjny indeksu, 0, jeżeli object_id jest sterty, NULL, -1 lub DEFAULT. Wartością domyślną jest -1, wartości NULL, -1, a DEFAULT są równoważne wartości w tym kontekście.

    Należy określić wartość NULL, zwraca buforowane informacje o wszystkich indeksów w tabela bazowa lub w widoku.Jeżeli określono wartość NULL dla index_id, należy także określić wartość NULL dla partition_number.

  • partition_number | NULL | 0 | DOMYŚLNE
    Partition number in the object.partition_number is int.Prawidłowe dane wejściowe są partion_number indeks lub sterty, NULL, 0 lub DEFAULT. Wartość domyślna to 0.Wartością tą jest NULL, 0, a DEFAULT są równoważne wartości w tym kontekście.

    Należy określić wartość NULL, zwraca buforowane informacje dla wszystkich partycji indeksu lub sterty.

    partition_number jest oparte na 1.Indeks nonpartitioned lub sterty. partition_number wartość 1.

Zwracana tabela

Nazwa kolumna

Typ danych

Description

database_id

smallint

Identyfikator bazy danych.

object_id

int

Identyfikator tabela lub widoku.

index_id

int

Identyfikator indeksu lub sterty.

0 = Sterty.

partition_number

int

numer partycji na 1 w indeksie lub sterty.

leaf_insert_count

bigint

Skumulowana liczba wstawia poziom liść.

leaf_delete_count

bigint

Skumulowana liczba usuwa poziom liść.

leaf_update_count

bigint

Skumulowana liczba aktualizacji poziom liść.

leaf_ghost_count

bigint

Skumulowana liczba wierszy typu liść, które są oznaczone jako usunięte, ale nie zostały jeszcze usunięte.Te wiersze są usuwane przez wątek oczyszczania odstępach zestaw.Wartość ta nie dotyczy wierszy, które są zachowywane, ze względu na transakcję izolacji zaległe migawka.Aby uzyskać więcej informacji na temat migawka izolacji transakcji zobacz Row Versioning-based Isolation Levels in the Database Engine.

nonleaf_insert_count

bigint

Skumulowana liczba wstawia powyżej poziomu typu poziom liścia.

0 = Sterty.

nonleaf_delete_count

bigint

Skumulowana liczba usuwa powyżej poziomu typu poziom liścia.

0 = Sterty.

nonleaf_update_count

bigint

Skumulowana liczba aktualizacji powyżej poziomu typu poziom liścia.

0 = Sterty.

leaf_allocation_count

bigint

Skumulowana liczba podział strona poziom liść w indeksie lub sterty.

Do indeksu podział strona odpowiada podziału strona.

nonleaf_allocation_count

bigint

Skumulowana liczba podział strona spowodowanych przez strona dzieli się powyżej poziomu typu poziom liścia.

0 = Sterty.

leaf_page_merge_count

bigint

Skumulowana liczba strona scala na poziomie poziom liścia.

nonleaf_page_merge_count

bigint

Skumulowana liczba stron scala powyżej poziomu typu poziom liścia.

0 = Sterty.

range_scan_count

bigint

Skumulowana liczba skanowanie zakres i tabela rozpoczęto indeksu lub sterty.

singleton_lookup_count

bigint

Skumulowana liczba pobrań pojedynczych wierszy z indeksu lub sterty.

forwarded_fetch_count

bigint

Liczba wierszy, które zostały pobrane za pośrednictwem rekordu przesyłania dalej.

0 = Indeksów

lob_fetch_in_pages

bigint

Skumulowana liczba stron z dużego obiektu (LOB) jest pobierana z LOB_DATA jednostka alokacji.Strony te zawierają dane, które są przechowywane w kolumnach typu text, ntext, image, varchar(max), nvarchar(max), varbinary(max), a xml. Aby uzyskać więcej informacji zobaczData Types (Transact-SQL).Aby uzyskać więcej informacji na temat jednostek alokacji zobacz Organizacja indeksu i tabela.

lob_fetch_in_bytes

bigint

Skumulowana liczba bajtów dane LOB pobierane.

lob_orphan_create_count

bigint

Skumulowany liczbę oddzielony wartości LOB utworzone dla operacji zbiorczej.

0 = Indeks nieklastrowany

lob_orphan_insert_count

bigint

Skumulowany liczbę oddzielony wartości LOB wstawiany podczas operacji zbiorczej.

0 = Indeks nieklastrowany

row_overflow_fetch_in_pages

bigint

Skumulowana liczba wiersze danych przekraczające rozmiar strony strony są pobierane z ROW_OVERFLOW_DATA jednostka alokacji.

Strony te zawierają dane przechowywane w kolumnach typu varchar(n), nvarchar(n), varbinary(n), a sql_variant ma został przeniesiony poza wiersza. Aby uzyskać więcej informacji zobaczRow-Overflow Data Exceeding 8 KB.Aby uzyskać więcej informacji na temat jednostek alokacji zobacz Organizacja indeksu i tabela.

row_overflow_fetch_in_bytes

bigint

Skumulowana liczba wiersze danych przekraczające rozmiar strony pobranych bajtów.

column_value_push_off_row_count

bigint

Skumulowana liczba wartości kolumna dla dane LOB i wiersze danych przekraczające rozmiar strona jest barki poza wiersze dokonać jest wstawiony lub zaktualizowany wiersz mieszczą się strona.

column_value_pull_in_row_count

bigint

Skumulowana liczba wartości kolumna w przypadku dane LOB i przepełnienia wiersz danych jest pobierana w wierszu.Dzieje się tak, gdy operacja aktualizacji zwalnia miejsce w rekordzie i zapewnia możliwość pobierania w jedną lub więcej wartości poza wiersza z jednostek alokacji LOB_DATA lub ROW_OVERFLOW_DATA IN_ROW_DATA jednostką alokacji.Aby uzyskać więcej informacji na temat jednostek alokacji zobacz Organizacja indeksu i tabela.

row_lock_count

bigint

Skumulowana liczba blokad wiersza żądanie.

row_lock_wait_count

bigint

Skumulowana liczba przypadków Database Engine 15–30 blokada wiersza.

row_lock_wait_in_ms

bigint

Całkowita liczba milisekund Database Engine 15–30 w wierszu blokada.

page_lock_count

bigint

Skumulowana liczba blokad strona żądanie.

page_lock_wait_count

bigint

Skumulowana liczba przypadków Database Engine 15–30 strona blokada.

page_lock_wait_in_ms

bigint

Całkowita liczba milisekund Database Engine 15–30 strona blokada.

index_lock_promotion_attempt_count

bigint

Skumulowana liczba przypadków Database Engine Próbowano przekazać zgłoszenie blokad.

index_lock_promotion_count

bigint

Skumulowana liczba przypadków Database Engine przekazany blokad.

page_latch_wait_count

bigint

Skumulowana liczba przypadków Database Engine 15–30 z powodu niezgodności zatrzaśnięcie.

page_latch_wait_in_ms

bigint

Skumulowana liczba milisekund Database Engine 15–30 z powodu niezgodności zatrzaśnięcie.

page_io_latch_wait_count

bigint

Skumulowana liczba przypadków Database Engine 15–30 na zatrzaśnięcie strona we/wy.

page_io_latch_wait_in_ms

bigint

Skumulowana liczba milisekund Database Engine 15–30 strona zatrzaśnięcie We/Wy.

tree_page_latch_wait_count

bigint

Podzbiór page_latch_wait_count zawierający tylko te strony B-drzewo górnego poziom.Zawsze 0 dla sterty.

tree_page_latch_wait_in_ms

bigint

Podzbiór page_latch_wait_in_ms zawierający tylko te strony B-drzewo górnego poziom.Zawsze 0 dla sterty.

tree_page_io_latch_wait_count

bigint

Podzbiór page_io_latch_wait_count zawierający tylko te strony B-drzewo górnego poziom.Zawsze 0 dla sterty.

tree_page_io_latch_wait_in_ms

bigint

Podzbiór page_io_latch_wait_in_ms zawierający tylko te strony B-drzewo górnego poziom.Zawsze 0 dla sterty.

page_compression_attempt_count

bigint

Liczba stron, które były obliczane strona poziom kompresji dla określonej partycji tabela, indeks lub widok indeksowany.Zawiera strony, które nie zostały skompresowane, ponieważ nie można osiągnąć znaczne oszczędności.

page_compression_success_count

bigint

Liczba stron danych, które zostały skompresowane przy użyciu kompresji strona dla określonej partycji tabela, indeks lub widok indeksowany.

Remarks

Ten obiekt dynamicznego zarządzania nie akceptuje parametry skorelowanej pytania mają zastosowania i OUTER mają zastosowania.

Można użyć sys.dm_db_index_operational_stats do śledzenia czas, które użytkownicy muszą czekać do odczytu lub zapisu do tabela, indeksu, lub podzielić na partycje i zidentyfikować tabel lub indeksy, które są wystąpią znaczące aktywność We/Wy lub punkty aktywne.

W następujących kolumnach umożliwia identyfikowanie obszarów rywalizacji.

Aby analizować wspólne wzorzec dostępu do partycji tabela lub indeksu, za pomocą tych kolumn:

  • leaf_insert_count

  • leaf_delete_count

  • leaf_update_count

  • leaf_ghost_count

  • range_scan_count

  • singleton_lookup_count

Aby zidentyfikować latching i blokowania rywalizacji, należy użyć tych kolumn:

  • page_latch_wait_count and page_latch_wait_in_ms

    Te kolumny umożliwia wskazanie, czy jest rywalizacja zatrzaśnięcie indeksu lub sterty oraz istotność rywalizacja.

  • row_lock_count and page_lock_count

    Kolumny te wskazują, ile razy Database Engine Podjęto próbę uzyskania blokady wiersza i strona.

  • row_lock_wait_in_ms and page_lock_wait_in_ms

    Kolumny te wskazują, czy nie ma rywalizacji blokad indeksu lub sterty oraz istotność rywalizacji.

Do analizowania statystyk fizycznej operacji We/Wy na partycji indeksu lub sterty.

  • page_io_latch_wait_count and page_io_latch_wait_in_ms

    Te kolumny wskazuje, czy wydano fizycznej operacji We/Wy do indeksu lub wydano sterty stron do pamięci i liczby operacji We/Wy.

Kolumna uwagi

Wartości w polach lob_orphan_create_count and lob_orphan_insert_count powinny być zawsze równe.

Wartości w kolumnach lob_fetch_in_pages and lob_fetch_in_bytes może być większa od zera do ponownego zbudowania indeksów zawierające jedną lub więcej kolumn LOB jako dołączone kolumny nie klastrowanych.Aby uzyskać więcej informacji zobaczIndex with Included Columns.Podobnie wartości w kolumnach row_overflow_fetch_in_pages and row_overflow_fetch_in_bytes może być większa od 0 do ponownego zbudowania indeksów nie klastrowanych, jeśli indeks zawiera kolumny, które mogą zostać przesunięta poza wiersza.Aby uzyskać więcej informacji zobaczRow-Overflow Data Exceeding 8 KB.

W jaki sposób są Resetuj liczniki w pamięci podręcznej metadane

Dane zwrócone przez sys.dm_db_index_operational_stats istnieje tylko tak długo, jak obiekt pamięć podręczna (cache) metadane, który reprezentuje sterty lub indeks jest dostępny.Te dane są stałe ani transakcyjnie spójne.Oznacza to, aby stwierdzić, czy użyty indeks, czy nie, albo kiedy ostatnio był używany indeks nie można używać tych liczników.Aby uzyskać informacje na ten temat zobacz sys.dm_db_index_usage_stats (języka Transact-SQL).

Wartości dla każdej kolumna są ustawiane na zero, za każdym razem, gdy metadane dla stosu lub indeks jest umieszczany w pamięć podręczna (cache) metadane i statystyki są kumulowane, aż obiekt pamięci podręcznej jest usuwany z pamięć podręczna (cache) metadane.Dlatego do sterty aktywny lub indeksu będzie prawdopodobnie zawsze mieć jego metadane w pamięci podręcznej i skumulowany liczniki mogą odzwierciedlać działanie od momentu wystąpienie SQL Server ostatniego uruchomienia. Metadane dla mniej aktywnych sterty lub indeks zostaną przeniesione i wysyłane z pamięci podręcznej, ponieważ jest używana.W rezultacie może lub nie może mieć wartości dostępne.Usunięcie indeksu spowoduje, że odpowiednie statystyki chcesz usunąć z pamięci i nie jest już zgłoszony przez funkcja.Inne operacje DDL indeksu może spowodować, że wartość statystyki zostaną zresetowane do zera.

Aby określić wartości parametru za pomocą funkcje systemowe

Można użyć Transact-SQL Funkcje DB_ID and OBJECT_ID , aby określić wartość database_id i object_id Parametry. Jednak przekazywanie wartości, które nie są prawidłowe, tych funkcji może spowodować niezamierzone rezultaty.Zawsze należy się upewnić, że zwracana jest prawidłowy identyfikator, za pomocą DB_ID lub OBJECT_ID.Aby uzyskać więcej informacji zobacz sekcję Uwagi w sys.dm_db_index_physical_stats (Transact-SQL).

Uprawnienia

Musi mieć następujące uprawnienia:

  • Uprawnienie Kontrola na określony obiekt znajdujący się w bazie danych

  • VIEW DATABASE STATE uprawnienie do zwracania informacji o wszystkich obiektach z określonej bazy danych przy użyciu symboli wieloznacznych obiektu @object\_id = null

  • VIEW SERVER STATE uprawnienie do zwracania informacji o wszystkich baz danych przy użyciu symboli wieloznacznych bazy danych @database\_id = WARTOŚĆ ZEROWA

Udzielanie VIEW DATABASE STATE umożliwia wszystkie obiekty w bazie danych, które mają być zwrócone, niezależnie od wszelkich uprawnień kontroli odmowa na określonych obiektach.

Odmawianie VIEW STATE bazy danych nie zezwala na wszystkie obiekty w bazie danych, które mają być zwrócone, niezależnie od wszystkich uprawnień kontroli na określonych obiektach.Także, jeśli symbol wieloznaczny bazy danych @database\_id= NULL jest określony, zostanie pominięty w bazie danych.

Aby uzyskać więcej informacji zobaczDynamic Management Views and Functions (Transact-SQL).

Przykłady

A.Zwraca informacje dotyczące określonej tabela

W poniższym przykładzie zwraca informacje dotyczące wszystkich indeksów i partycje o Person.Address Tabela w AdventureWorks Baza danych. Wymaga wykonania tej kwerendy, przy minimalnej, uprawnienie Kontrola w Person.Address Tabela.

Important noteImportant Note:

W przypadku korzystania z Transact-SQL Funkcje DB_ID i OBJECT_ID zwracają wartość parametru zawsze upewnij się, że zwracany jest prawidłowy identyfikator. Jeśli nie można odnaleźć nazwy bazy danych lub obiekt, takie jak ich nie istnieją lub są wpisany błędnie, funkcjami zwróci wartość NULL.The sys.dm_db_index_operational_stats funkcja interprets NULL as a wildcard value that specifies all databases or all objects.Może być operacją niezamierzone, przykłady w tej części pokazują bezpieczny sposób, aby określić bazę danych i identyfikatory obiektów.

B.Zwraca informacje o wszystkich tabel i indeksów

W poniższym przykładzie zwraca informacje dotyczące wszystkich tabel i indeksów w obrębie wystąpienie SQL Server. Wykonywanie kwerendy wymaga uprawnienia VIEW SERVER STATE.