Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
SQL-Datenbank in Microsoft Fabric
Gibt die Datenzugriffs-, Sperr- und Verriegelungsstatistiken für jede Partition einer Tabelle oder eines Indexes in einer Datenbank zurück.
Transact-SQL-Syntaxkonventionen
Syntax
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 }
)
Argumente
{ database_id | NULL | 0 | DEFAULT }
Die ID der Datenbank.
database_id ist klein. Gültige Eingaben sind die ID-Nummer einer Datenbank, NULL, , 0, oder DEFAULT. Der Standardwert lautet 0.
NULL, 0und DEFAULT sind gleichwertige Werte in diesem Kontext.
Geben Sie NULL an, dass Informationen für alle Datenbanken in der Sql Server-Instanz zurückgegeben werden sollen. Wenn Sie für database_id angeben, müssen Sie auch für NULL, index_id und NULL angeben.
Die integrierte Funktion DB_ID kann angegeben werden.
{ object_id | NULL | 0 | DEFAULT }
Objekt-ID der Tabelle oder Ansicht, auf der sich der Index befindet. object_id ist int.
Gültige Eingaben sind die ID-Nummer einer Tabelle und die Ansicht, NULL, , 0oder DEFAULT. Der Standardwert lautet 0.
NULL, 0und DEFAULT sind gleichwertige Werte in diesem Kontext.
Geben Sie NULL an, dass Informationen für alle Tabellen und Ansichten in der angegebenen Datenbank zurückgegeben werden sollen. Wenn Sie für object_id angeben, müssen Sie auch für NULL und partition_number angebenNULL.
{ index_id | 0 | NULL | -1 | DEFAULT }
Die ID des Index.
index_id ist int. Gültige Eingaben sind die ID-Nummer eines Indexes, 0 wenn object_id ein Heap ist, NULL, -1, oder DEFAULT. Der Standardwert lautet -1.
NULL, -1und DEFAULT sind gleichwertige Werte in diesem Kontext.
Geben Sie NULL an, dass Informationen für alle Indizes für eine Basistabelle oder -ansicht zurückgegeben werden sollen. Wenn Sie für index_id angebenNULL, müssen Sie auch für partition_number angebenNULL.
{ partition_number | NULL | 0 | DEFAULT }
Partitionsnummer im Objekt.
partition_number ist int. Gültige Eingaben sind die partition_number eines Indexes oder Heaps, NULL, 0oder DEFAULT. Der Standardwert lautet 0.
NULL, 0und DEFAULT sind gleichwertige Werte in diesem Kontext.
Geben Sie an NULL , um Informationen für alle Partitionen des Index oder Heaps zurückzugeben.
partition_number basiert auf 1. Ein nicht partitioniertes Index oder Heap hat partition_number auf 1 festgelegt.
Zurückgegebene Tabelle
| Spaltenname | Datentyp | Description |
|---|---|---|
database_id |
smallint | Datenbank-ID In Azure SQL-Datenbank sind die Werte innerhalb einer einzelnen Datenbank oder eines Pools für elastische Datenbanken eindeutig, aber nicht innerhalb eines logischen Servers. |
object_id |
int | ID der Tabelle oder Sicht. Weitere Informationen finden Sie unter sys.objects. |
index_id |
int | ID des Indexes oder Heaps. Weitere Informationen finden Sie unter sys.indexes. |
partition_number |
int | Auf 1 basierende Partitionsnummer im Index oder Heap. Weitere Informationen finden Sie unter sys.partitions. |
hobt_id |
bigint | ID des Datenhap- oder B-Struktur-Rowsets, das interne Daten für einen Spaltenspeicherindex nachverfolgt.NULL - Das ist kein internes Columnstore-Rowset.Weitere Informationen finden Sie unter sys.internal_partitions. |
leaf_insert_count |
bigint | Kumulierte Anzahl von Blattebeneneinfügungen. Weitere Informationen zu Indexebenen finden Sie in der Indexarchitektur und im Entwurfshandbuch. |
leaf_delete_count |
bigint | Kumulierte Anzahl von Löschvorgangen auf Blattebene.
leaf_delete_count wird nur für gelöschte Einträge erhöht, die nicht zuerst als Ghost markiert sind. Bei gelöschten Datensätzen, die zuerst gespenst werden, leaf_ghost_count wird stattdessen erhöht. |
leaf_update_count |
bigint | Kumulierte Anzahl von Aktualisierungen auf Blattebene. |
leaf_ghost_count |
bigint | Kumulierte Anzahl von Zeilen auf Blattebene, die als gelöscht markiert, aber noch nicht entfernt wurden. Diese Zählung schließt keine Datensätze ein, die sofort gelöscht werden, ohne als Ghost markiert zu werden. Ein Bereinigungsthread entfernt Geisterzeilen in festgelegten Intervallen. Dieser Wert schließt keine Ghost-Zeilen ein, die aufgrund einer ausstehenden Snapshot-Transaktion behalten werden. |
nonleaf_insert_count |
bigint | Gesamtzahl der Einfügevorgänge über der Blattebene. Gilt nur für B-Strukturindizes. 0 für Heaps oder Spaltenspeicherindizes. |
nonleaf_delete_count |
bigint | Gesamtzahl der Löschvorgänge über der Blattebene. Gilt nur für B-Strukturindizes. 0 für Heaps oder Spaltenspeicherindizes. |
nonleaf_update_count |
bigint | Gesamtzahl der Updates über der Blattebene. Gilt nur für B-Strukturindizes. 0 für Heaps oder Spaltenspeicherindizes. |
leaf_allocation_count |
bigint | Kumulierte Anzahl der Seitenzuweisungen auf Blattebene im Index oder Heap. Bei einem Index entspricht eine Seitenzuordnung einer Seitenteilung. |
nonleaf_allocation_count |
bigint | Gesamtzahl der durch Seitenteilungen über der Blattebene verursachten Seitenzuordnungen. Gilt nur für B-Strukturindizes. 0 für Heaps oder Spaltenspeicherindizes. |
leaf_page_merge_count |
bigint | Gesamtzahl der Seitenzusammenführungen auf der Blattebene. Immer 0 für Spaltenspeicherindizes. |
nonleaf_page_merge_count |
bigint | Gesamtzahl der Seitenzusammenführungen über der Blattebene. Gilt nur für B-Strukturindizes. 0 für Heaps oder Spaltenspeicherindizes. |
range_scan_count |
bigint | Gesamtzahl der im Index oder Heap gestarteten Bereichs- und Tabellenscans. |
singleton_lookup_count |
bigint | Gesamtzahl der Abrufvorgänge einzelner Zeilen aus dem Index oder Heap. |
forwarded_fetch_count |
bigint | Anzahl der über einen weitergeleiteten Datensatz abgerufenen Zeilen. Gilt nur für Heaps, 0 für B-Strukturindizes. |
lob_fetch_in_pages |
bigint | Kumulierte Anzahl großer Objektseiten (LOB), die aus einer LOB_DATA Zuordnungseinheit abgerufen wurden. Diese Seiten enthalten Daten, die in Spalten mit den Typen text, ntext, image, varchar(max),nvarchar(max),varbinary(max),xml und json gespeichert sind. Weitere Informationen finden Sie unter Datentypen. |
lob_fetch_in_bytes |
bigint | Gesamtzahl der abgerufenen LOB-Datenbytes. |
lob_orphan_create_count |
bigint | Gesamtzahl verwaister LOB-Werte, die für Massenvorgänge erstellt werden. Gilt nur für Heaps und B-Struktur gruppierte Indizes, 0 für nicht gruppierte Indizes und Spaltenspeicherindizes. |
lob_orphan_insert_count |
bigint | Gesamtzahl verwaister LOB-Werte, die während Massenvorgängen eingefügt werden. Gilt nur für Heaps und B-Struktur gruppierte Indizes, 0 für nicht gruppierte Indizes und Spaltenspeicherindizes. |
row_overflow_fetch_in_pages |
bigint | Kumulierte Anzahl von Zeilenüberlaufdatenseiten, die aus einer ROW_OVERFLOW_DATA Zuordnungseinheit abgerufen wurden.Diese Seiten enthalten Daten, die in Spalten vom Typ varchar(n), nvarchar(n), varbinary(n), und sql_variant für große Zeilen gespeichert sind. |
row_overflow_fetch_in_bytes |
bigint | Gesamtzahl der abgerufenen Zeilenüberlauf-Datenbytes. |
column_value_push_off_row_count |
bigint | Gesamtzahl der Spaltenwerte für LOB-Daten und Zeilenüberlaufdaten, die durch Ausführen eines Pushs außerhalb von Zeilen verschoben wurden, damit eine eingefügte oder aktualisierte Zeile auf eine Seite passt. |
column_value_pull_in_row_count |
bigint | Gesamtwert der Spaltenwerte für LOB-Daten und Zeilenüberlaufdaten, die durch Ausführen eines Pulls innerhalb eine Zeile verschoben werden. Dies tritt auf, wenn ein Aktualisierungsvorgang Speicherplatz in einem Datensatz frei gibt und eine Möglichkeit bietet, einen oder mehrere Off-Row-Werte aus einer LOB_DATA oder ROW_OVERFLOW_DATA mehreren Zuordnungseinheiten in die IN_ROW_DATA Zuordnungseinheit zu ziehen. |
row_lock_count |
bigint | Gesamtzahl der angeforderten Zeilensperren. |
row_lock_wait_count |
bigint | Kumulierte Anzahl der Wartezeiten für die Datenbank-Engine auf eine Zeilensperre. |
row_lock_wait_in_ms |
bigint | Die Gesamtzahl der Millisekunden, die die Datenbank-Engine auf eine Zeilensperre gewartet haben. |
page_lock_count |
bigint | Gesamtzahl der angeforderten Seitensperren. |
page_lock_wait_count |
bigint | Kumulierte Anzahl der Wartezeiten des Datenbank-Engine auf eine Seitensperre. |
page_lock_wait_in_ms |
bigint | Die Gesamtzahl der Millisekunden, die die Datenbank-Engine auf eine Seitensperre gewartet haben. |
index_lock_promotion_attempt_count |
bigint | Kumulierte Häufigkeit, mit der die Datenbank-Engine versucht haben, Sperren zu eskalieren. |
index_lock_promotion_count |
bigint | Kumulierte Anzahl der Datenbank-Engine eskalierten Sperren. |
page_latch_wait_count |
bigint | Kumulierte Anzahl der Wartezeiten des Datenbankmoduls, um einen Riegel zu erhalten. |
page_latch_wait_in_ms |
bigint | Die kumulierte Anzahl von Millisekunden, die das Datenbankmodul wartete, um einen Riegel zu erhalten. |
page_io_latch_wait_count |
bigint | Kumulierte Anzahl der Wartezeiten des Datenbankmoduls auf einer Seiten-E/A-Riegelung. |
page_io_latch_wait_in_ms |
bigint | Kumulierte Anzahl von Millisekunden, die die Datenbank-Engine auf einer Seiten-E/A-Riegelung gewartet haben. |
tree_page_latch_wait_count |
bigint | Teilmenge, die page_latch_wait_count nur die B-Strukturseiten der oberen Ebene enthält. Immer 0 für einen Heap oder einen columnstore-Index. |
tree_page_latch_wait_in_ms |
bigint | Teilmenge, die page_latch_wait_in_ms nur die B-Strukturseiten der oberen Ebene enthält. Immer 0 für einen Heap oder einen columnstore-Index. |
tree_page_io_latch_wait_count |
bigint | Teilmenge, die page_io_latch_wait_count nur die B-Strukturseiten der oberen Ebene enthält. Immer 0 für einen Heap oder einen columnstore-Index. |
tree_page_io_latch_wait_in_ms |
bigint | Teilmenge, die page_io_latch_wait_in_ms nur die B-Strukturseiten der oberen Ebene enthält. Immer 0 für einen Heap oder einen columnstore-Index. |
page_compression_attempt_count |
bigint | Anzahl der Seiten, die auf PAGE Levelkompression für eine bestimmte Partition einer Tabelle, eines Index oder einer indexierten Ansicht ausgewertet wurden. Enthält Seiten, die nicht komprimiert wurden, weil keine signifikanten Einsparungen möglich waren. Immer 0 für Spaltenspeicherindizes. |
page_compression_success_count |
bigint | Anzahl der Datenseiten, die durch PAGE Kompression für bestimmte Partitionen einer Tabelle, eines Index oder einer indexierten Ansicht komprimiert wurden. Immer 0 für Spaltenspeicherindizes. |
version_generated_inrow |
bigint | Kumulierte Anzahl von In-Zeilen-Versionen mit Nutzlast, die in der Heap- oder B-Struktur für einen Update-, Zusammenführungs- oder Insert-over-Ghost-Vorgang generiert wurde. In einer zeileninternen Version wird das alte Zeilenbild (oder ein Diff) direkt in der Zeile gespeichert, ohne dass eine Reise zum Versionsspeicher erfolgt. Diese Anzahl ist eine Obermenge, die Versionen enthält, die von insert_over_ghost_version_inrow. Weitere Informationen zu In-Row- und Off-Row-Versionen finden Sie unter "Space used by the persistent version store (PVS)". |
version_generated_offrow |
bigint | Kumulative Anzahl der Versionen, die an den Off-Row-Speicher für einen Heap-, B-Struktur- oder LOB-Lösch-, Aktualisierungs-, Zusammenführungs- oder Insert-over-Ghost-Vorgang übertragen wurden. Eine Off-Row-Version wird generiert, wenn das alte Zeilenbild nicht mehr in der Reihe behalten werden kann. Diese Anzahl ist eine Obermenge, die Versionen enthält, die von ghost_version_offrow und .insert_over_ghost_version_offrow |
ghost_version_inrow |
bigint | Kumulierte Anzahl der Male, mit denen ein Lösch- oder Aktualisierungsvorgang (als Löschvorgang, gefolgt von einem Einfügen) die vorhandene Zeile als Geist mit In-Row-Versionsverwaltungsinformationen markiert hat. In der zeileninternen Version werden nur ein Transaktionszeitstempel und eine Nutzlast der Länge Null gespeichert, sodass das Rückgängigmachen des Löschens nur eine Unghosting der Zeile erfordert. |
ghost_version_offrow |
bigint | Kumulierte Anzahl der Male, mit denen ein Lösch- oder Aktualisierungsvorgang (als Löschvorgang ausgeführt wird, gefolgt von einem Einfügen) die vorhandenen Zeilen- oder BRANCHENspaltendaten an den Speicher außerhalb der Zeile übertragen, wodurch ein Stub in der Zeile für Versionsverwaltungsinformationen erhalten bleibt. Dieser Zähler wird zusammen mit version_generated_offrow Geisteroperationen erhöht. |
insert_over_ghost_version_inrow |
bigint | Kumulierte Anzahl von In-Zeilen-Versionen mit Nutzlast, die für einen B-Struktur-Insert-over-Ghost-Vorgang generiert wurde. Ein Insert-over-Ghost tritt auf, wenn eine neue Zeile in das Slot eines zuvor gespensteten Datensatzes eingefügt wird, entweder aus einem expliziten Löschvorgang, gefolgt von einem Einfügen, oder aus einer Aktualisierung oder zusammenführung, die als Löschvorgang implementiert wird, gefolgt von einem Einfügen. Dieser Zähler ist eine Teilmenge von version_generated_inrow. |
insert_over_ghost_version_offrow |
bigint | Kumulierte Anzahl der Male, mit denen die vorhandene Ghostzeile während eines B-Tree-Insert-over-Ghost-Vorgangs an den Speicher außerhalb der Zeile verschoben wurde, wobei ein Stub in der neu eingefügten Zeile für Versionsverwaltungsinformationen übrig bleibt. Dieser Zähler ist eine Teilmenge von version_generated_offrow. |
compaction_attempt_count |
bigint | Kumulative Anzahl der Versuche der automatischen Indexverdichtung. Weitere Informationen finden Sie unter Automatische Indexverdichtung (Vorschau). |
compaction_complete_count |
bigint | Kumulative Anzahl abgeschlossener Index-Autoverdichtungen. |
compaction_skip_count |
bigint | Kumulative Anzahl der übersprungenen Index-Autokompressionen. Weitere Informationen zu Überspring-Gründen finden Sie unter Verwenden eines erweiterten Ereignisses zur Überwachung der Kompaktionsstatistiken. |
compaction_ineligible_count |
bigint | Kumulierte Anzahl der Verdichtungsversuche wurde übersprungen, weil eine Seite für die automatische Kompaktierung nicht berechtigt war. |
compaction_failure_count |
bigint | Kumulierte Anzahl gescheiterter Verdichtungsversuche. |
compaction_row_move_count |
bigint | Die kumulierte Anzahl der Zeilen, die im Rahmen der automatischen Verdichtung von einer Seite zur nächsten verschoben wurden. |
compaction_page_deallocation_count |
bigint | Kumulierte Anzahl der Seiten, die nach dem Verschieben aller Zeilen auf eine andere Seite freigegeben wurden. |
Note
In der Dokumentation wird der Begriff „B-tree“ im Allgemeinen in Bezug auf Indizes verwendet. In Rowstore-Indizes implementiert die Datenbank-Engine einen B+-Baum. Dies gilt nicht für Columnstore-Indizes oder Indizes auf speicheroptimierten Tabellen. Weitere Informationen finden Sie im Leitfaden zur Architektur und zum Entwerfen von SQL Server- und Azure SQL-Indizes.
Bemerkungen
Diese Funktion gibt keine Informationen zu Indizes für speicheroptimierte Tabellen zurück. Informationen zu Indizes auf speicheroptimierten Tabellen finden Sie unter sys.dm_db_xtp_index_stats.
Diese Funktion akzeptiert keine korrelierten Parameter von CROSS APPLY und OUTER APPLY.
Sie können sys.dm_db_index_operational_stats Daten zum Lesen und Schreiben von Betriebsstatistiken nachverfolgen und Sperren, Seitensperre und Seiten-E/A-Statistiken für eine Tabelle, einen Index oder eine Partition sperren. Sie können die Tabellen, Indizes und Partitionen identifizieren, die auf erhebliche Aktivitäten oder Konflikte stoßen.
Die Statistiken werden auf Partitionsebene bereitgestellt und sind additiv. Dies bedeutet, dass Sie Statistiken auf Indexebene oder Tabellenebene abrufen können, indem Sie eine Aggregationsabfrage in T-SQL schreiben. Weitere Informationen finden Sie unter " Indexüberprüfungen" und sucht nach allen Tabellen .
Verwenden Sie die folgenden Spalten, um Lese- und Schreibvorgänge für eine Tabelle, einen Index oder eine Partition zu analysieren:
leaf_insert_countleaf_delete_countleaf_update_countleaf_ghost_countrange_scan_countsingleton_lookup_count
Verwenden Sie die folgenden Spalten, um die Riegelung zu identifizieren:
page_latch_wait_countpage_latch_wait_in_ms
Verwenden Sie die folgenden Spalten, um die Sperrverknügung zu identifizieren:
row_lock_countpage_lock_countrow_lock_wait_in_mspage_lock_wait_in_ms
Verwenden Sie die folgenden Spalten, um die physische E/A-Statistik zu analysieren:
page_io_latch_wait_countpage_io_latch_wait_in_ms
Anmerkungen zu Spalten
Die Werte in den Spalten lob_fetch_in_pages und lob_fetch_in_bytes können für nicht gruppierte Indizes größer als Null sein, die eine oder mehrere LOB-Spalten als eingeschlossene Spalten enthalten. Weitere Informationen finden Sie unter Erstellen von Indizes mit enthaltenen Spalten. Entsprechend können die Werte in den Spalten row_overflow_fetch_in_pages und row_overflow_fetch_in_bytes für nicht gruppierte Indizes größer als 0 sein, wenn der Index große Zeilen enthält.
Zurücksetzen der Leistungsindikatoren im Metadatencache
Die von sys.dm_db_index_operational_stats ihnen zurückgegebenen Daten sind nur vorhanden, solange ein Metadatencacheobjekt verfügbar ist, das den Heap oder die B-Struktur darstellt. Diese Daten sind nicht persistent. Das bedeutet, dass Sie diese Zähler nicht eindeutig verwenden können, um endgültig festzustellen, ob ein Index verwendet wurde oder nicht, oder wann der Index zuletzt verwendet wurde. Verwenden Sie stattdessen sys.dm_db_index_usage_stats.
Die Werte für jede numerische Spalte werden auf Null festgelegt, wenn die Metadaten für den Heap oder die B-Struktur in den Metadatencache eingefügt werden. Statistiken werden gesammelt, bis das Cacheobjekt aus dem Metadatencache entfernt wird. Ein aktiver Heap oder eine B-Struktur weist häufig seine Metadaten im Cache auf, und die kumulierten Zählungen spiegeln die Aktivität seit dem letzten Start der Datenbankmodulinstanz wider. Die Metadaten für einen weniger aktiven Heap oder B-Baum können während der Nutzung in den Cache ein- und aussteigen, insbesondere wenn die Datenbank-Engine-Instanz unter Speicherdruck steht. Daher werden die Index-Betriebsstatistiken manchmal nicht berücksichtigt sys.dm_db_index_operational_stats. Ein solches Szenario ist aber unüblich.
Statistiken werden aus dem Cache entfernt und von dieser Funktion nicht mehr gemeldet, wenn eine Tabelle oder ein Index gelöscht wird oder eine Partition abgeschnitten wird. Andere DDL-Vorgänge für den Index können dazu führen, dass der Wert der Statistiken auf Null zurückgesetzt wird.
Verwenden von Systemfunktionen zum Angeben von Parameterwerten
Sie können die Transact-SQL-Funktionen DB_ID und OBJECT_ID verwenden, um einen Wert für die Parameter database_id und object_id anzugeben. Das Weitergeben von Werten, die für diese Funktionen nicht gültig sind, kann jedoch unbeabsichtigte Ergebnisse verursachen. Stellen Sie immer sicher, dass beim Verwenden oder Verwenden DB_ID eine OBJECT_IDgültige ID zurückgegeben wird. Weitere Informationen finden Sie unter Rückgabeinformationen für eine angegebene Tabelle.
Erlaubnisse
Folgende Berechtigungen sind erforderlich:
CONTROLBerechtigung für das angegebene Objekt in der DatenbankVIEW DATABASE STATEoderVIEW DATABASE PERFORMANCE STATEdie Berechtigung, Informationen über alle Objekte innerhalb der angegebenen Datenbank zurückzugeben, wenn kein Wert für@object_idangegeben ist.VIEW SERVER STATEoderVIEW SERVER PERFORMANCE STATEdie Berechtigung, Informationen über alle Datenbanken zurückzugeben, wenn kein Wert für@database_idangegeben ist.
Gewähren VIEW DATABASE STATE oder VIEW SERVER PERFORMANCE STATE Erlauben, dass alle Objekte in der Datenbank zurückgegeben werden, unabhängig von berechtigungen CONTROL , die für bestimmte Objekte verweigert wurden.
Alle VIEW DATABASE STATE Objekte in der Datenbank verweigern oder VIEW SERVER PERFORMANCE STATE verbieten, zurückgegeben zu werden, unabhängig von berechtigungen CONTROL , die für bestimmte Objekte erteilt wurden.
Weitere Informationen finden Sie unter Systemdynamische Verwaltungsansichten und -funktionen.
Examples
Zurückgeben von Informationen für eine angegebene Tabelle
Das folgende Beispiel liefert Informationen für alle Indizes und Partitionen der Person.Address Tabelle in der AdventureWorks2025-Datenbank.
Important
Wenn Sie die Transact-SQL-Funktionen DB_ID verwenden und OBJECT_ID einen Parameterwert zurückgeben, stellen Sie immer sicher, dass eine gültige ID zurückgegeben wird. Wenn der Datenbank- oder Objektname nicht gefunden werden kann, z. B. wenn sie nicht vorhanden sind oder falsch geschrieben sind, werden beide Funktionen zurückgegeben NULL. Die sys.dm_db_index_operational_stats Funktion wird als Wildcardwert interpretiert NULL , der alle Datenbanken oder alle Objekte angibt. Da dies ein versehentlicher Vorgang sein kann, veranschaulichen die Beispiele in diesem Abschnitt, wie Sie auf sichere Weise Datenbank- und Objekt-IDs bestimmen.
DECLARE @db_id AS INT = DB_ID(N'AdventureWorks2025');
DECLARE @object_id AS INT = OBJECT_ID(N'AdventureWorks2025.Person.Address');
SELECT *
FROM sys.dm_db_index_operational_stats(@db_id, @object_id, NULL, NULL)
WHERE @db_id IS NOT NULL
AND @object_id IS NOT NULL;
Zurückgeben von Informationen für alle Tabellen und Indizes
Im folgenden Beispiel werden Informationen für alle Tabellen und Indizes in einer Datenbankmodulinstanz zurückgegeben.
SELECT *
FROM sys.dm_db_index_operational_stats(NULL, NULL, NULL, NULL);
Indexüberprüfungen und Suchvorgänge für alle Tabellen
Im folgenden Beispiel werden Partitionsebenendaten aggregiert, um Die Indexsuche und Scanstatistiken für alle Tabellen in der aktuellen Datenbank zurückzugeben.
SELECT OBJECT_SCHEMA_NAME(object_id) AS schema_name,
OBJECT_NAME(object_id) AS object_name,
COUNT(DISTINCT(index_id)) AS index_count,
COUNT(DISTINCT(partition_number)) AS partition_count,
SUM(range_scan_count) AS index_scan_count,
SUM(singleton_lookup_count) AS index_seek_count
FROM sys.dm_db_index_operational_stats(DB_ID(), DEFAULT, DEFAULT, DEFAULT)
GROUP BY OBJECT_SCHEMA_NAME(object_id),
OBJECT_NAME(object_id)
ORDER BY schema_name, object_name;
Verwandte Inhalte
- Systemdynamische Verwaltungsansichten und -funktionen
- Indexbezogene dynamische Verwaltungsansichten und -funktionen (Transact-SQL)
- Überwachen und Optimieren der Leistung
- sys.dm_db_index_physical_stats (Transact-SQL)
- sys.dm_db_index_usage_stats (Transact-SQL)
- sys.dm_os_latch_stats (Transact-SQL)
- sys.dm_db_partition_stats (Transact-SQL)
- sys.allocation_units (Transact-SQL)
- sys.partitions (Transact-SQL)
- sys.indexes (Transact-SQL)