sys.dm_db_index_operational_stats (Transact-SQL)sys.dm_db_index_operational_stats (Transact-SQL)

DIESES THEMA GILT FÜR:jaSQL Server (ab 2008)jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Gibt aktuelle E/A-Aktivitäten auf niedriger Ebene sowie Aktivitäten im Zusammenhang mit Sperren, Latches und Zugriffsmethoden für alle Partitionen einer Tabelle oder eines Indexes in der Datenbank zurück.Returns current lowore-level I/O, locking, latching, and access method activity for each partition of a table or index in the database.

Speicheroptimierte Indizes werden in dieser DMV nicht angezeigt.Memory-optimized indexes do not appear in this DMV.

Hinweis

Sys. dm_db_index_operational_stats gibt keine Informationen zu speicheroptimierten Indizes zurück.sys.dm_db_index_operational_stats does not return information about memory-optimized indexes. Informationen zur Verwendung von speicheroptimierten Indizes finden Sie unter dm_db_xtp_index_stats ( Transact-SQL ) .For information about memory-optimized index use, see sys.dm_db_xtp_index_stats (Transact-SQL).

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax


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 }    
)    

ArgumenteArguments

Database_id | NULL | 0 | STANDARDWERTdatabase_id | NULL | 0 | DEFAULT
Die ID der Datenbank.ID of the database. Database_id ist "smallint".database_id is smallint. Gültige Eingaben sind die ID einer Datenbank, NULL, 0 oder DEFAULT.Valid inputs are the ID number of a database, NULL, 0, or DEFAULT. Die Standardeinstellung ist 0.The default is 0. NULL, 0 und DEFAULT sind in diesem Kontext gleichwertig.NULL, 0, and DEFAULT are equivalent values in this context.

Geben Sie NULL an, wenn Informationen zu allen Datenbanken in der Instanz von SQL ServerSQL Server zurückgegeben werden sollen.Specify NULL to return information for all databases in the instance of SQL ServerSQL Server. Bei Angabe von NULL für Database_id, müssen Sie auch angeben, NULL für Object_id, Index_id, und Partition_number.If you specify NULL for database_id, you must also specify NULL for object_id, index_id, and partition_number.

Die integrierte Funktion DB_ID kann angegeben werden.The built-in function DB_ID can be specified.

Object_id | NULL | 0 | STANDARDWERTobject_id | NULL | 0 | DEFAULT
Die Objekt-ID der Tabelle oder Sicht mit dem Index.Object ID of the table or view the index is on. object_id ist int.object_id is int.

Gültige Eingaben sind die ID einer Tabelle und Sicht, NULL, 0 oder DEFAULT.Valid inputs are the ID number of a table and view, NULL, 0, or DEFAULT. Die Standardeinstellung ist 0.The default is 0. NULL, 0 und DEFAULT sind in diesem Kontext gleichwertig.NULL, 0, and DEFAULT are equivalent values in this context.

Geben Sie NULL an, wenn zwischengespeicherte Informationen zu allen Tabellen und Sichten in der angegebenen Datenbank zurückgegeben werden sollen.Specify NULL to return cached information for all tables and views in the specified database. Bei Angabe von NULL für Object_id, müssen Sie auch angeben, NULL für Index_id und Partition_number.If you specify NULL for object_id, you must also specify NULL for index_id and partition_number.

Index_id | 0 | NULL | -1 | STANDARDWERTindex_id | 0 | NULL | -1 | DEFAULT
Die ID des Index.ID of the index. Index_id ist Int. Gültige Eingaben sind die ID-Nummer eines Indexes, 0, wenn Object_id ist ein Heap ist, NULL,-1 oder DEFAULT.index_id is int. Valid inputs are the ID number of an index, 0 if object_id is a heap, NULL, -1, or DEFAULT. Der Standardwert ist -1. NULL, -1 und DEFAULT sind in diesem Kontext gleichwertig.The default is -1, NULL, -1, and DEFAULT are equivalent values in this context.

Geben Sie NULL an, wenn zwischengespeicherte Informationen zu allen Indizes für eine Basistabelle oder Sicht zurückgegeben werden sollen.Specify NULL to return cached information for all indexes for a base table or view. Bei Angabe von NULL für Index_id, müssen Sie auch angeben, NULL für Partition_number.If you specify NULL for index_id, you must also specify NULL for partition_number.

Partitionsnummer | NULL | 0 | STANDARDWERTpartition_number | NULL | 0 | DEFAULT
Partitionsnummer im Objekt.Partition number in the object. Partitionsnummer ist Int. Gültige Eingaben sind die Partion_number eines Indexes oder Heaps, NULL, 0 oder DEFAULT.partition_number is int. Valid inputs are the partion_number of an index or heap, NULL, 0, or DEFAULT. Die Standardeinstellung ist 0.The default is 0. NULL, 0 und DEFAULT sind in diesem Kontext gleichwertig.NULL, 0, and DEFAULT are equivalent values in this context.

Geben Sie NULL an, um zwischengespeicherte Informationen für alle Partitionen des Indexes oder Heaps zurückzugeben.Specify NULL to return cached information for all partitions of the index or heap.

Partitionsnummer ist 1-basiert.partition_number is 1-based. Ein nicht partitionierter Index oder Heap ist Partition_number auf 1 festgelegt.A nonpartitioned index or heap has partition_number set to 1.

Zurückgegebene TabelleTable Returned

SpaltennameColumn name DatentypData type DescriptionDescription
database_iddatabase_id smallintsmallint Datenbank-IDDatabase ID.
object_idobject_id intint ID der Tabelle oder Sicht.ID of the table or view.
index_idindex_id intint ID des Indexes oder Heaps.ID of the index or heap.

0 = Heap0 = Heap
hobt_idhobt_id bigintbigint Gilt für: SQL ServerSQL Server ( SQL Server 2016SQL Server 2016 bis zur aktuellen Version), Azure SQL-DatenbankAzure SQL Database.Applies to: SQL ServerSQL Server ( SQL Server 2016SQL Server 2016 through current version), Azure SQL-DatenbankAzure SQL Database.

Die ID des datenheaps oder der B-Struktur-Rowset, das die internen Daten für einen columnstore-Index nachverfolgt.ID of the data heap or B-tree rowset that tracks internal data for a columnstore index.

NULL: Dies ist kein interner columnstore-Rowset.NULL – this is not an internal columnstore rowset.

Weitere Informationen finden Sie unter sys.internal_partitions ( Transact-SQL )For more details, see sys.internal_partitions (Transact-SQL)
Partitionsnummerpartition_number intint Auf 1 basierende Partitionsnummer im Index oder Heap.1-based partition number within the index or heap.
leaf_insert_countleaf_insert_count bigintbigint Gesamtzahl der Einfügevorgänge auf Blattebene.Cumulative count of leaf-level inserts.
leaf_delete_countleaf_delete_count bigintbigint Gesamtzahl der Löschvorgänge auf Blattebene.Cumulative count of leaf-level deletes. Leaf_delete_count wird nur für gelöschte Datensätze erhöht, die nicht als inaktive zuerst markiert sind.leaf_delete_count is only incremented for deleted records that are not marked as ghost first. Für gelöschte Datensätze, die zuerst blasse Darstellung werden Leaf_ghost_count wird stattdessen erhöht.For deleted records that are ghosted first, leaf_ghost_count is incremented instead.
leaf_update_countleaf_update_count bigintbigint Gesamtzahl der Updates auf Blattebene.Cumulative count of leaf-level updates.
leaf_ghost_countleaf_ghost_count bigintbigint Gesamtzahl der Zeilen auf Blattebene, die als gelöscht markiert sind, jedoch noch nicht entfernt wurden.Cumulative count of leaf-level rows that are marked as deleted, but not yet removed. Diese Anzahl schließt keine Datensätze ein, die sofort gelöscht werden, ohne dass Sie als inaktive markiert.This count does not include records that are immediately deleted without being marked as ghost. Diese Zeilen werden durch einen Cleanupthread in bestimmten Intervallen entfernt.These rows are removed by a cleanup thread at set intervals. In diesem Wert sind keine Zeilen enthalten, die aufgrund einer ausstehenden Momentaufnahmeisolationstransaktion beibehalten werden.This value does not include rows that are retained, because of an outstanding snapshot isolation transaction.
nonleaf_insert_countnonleaf_insert_count bigintbigint Gesamtzahl der Einfügevorgänge über der Blattebene.Cumulative count of inserts above the leaf level.

0 = Heap oder columnstore0 = Heap or columnstore
nonleaf_delete_countnonleaf_delete_count bigintbigint Gesamtzahl der Löschvorgänge über der Blattebene.Cumulative count of deletes above the leaf level.

0 = Heap oder columnstore0 = Heap or columnstore
nonleaf_update_countnonleaf_update_count bigintbigint Gesamtzahl der Updates über der Blattebene.Cumulative count of updates above the leaf level.

0 = Heap oder columnstore0 = Heap or columnstore
leaf_allocation_countleaf_allocation_count bigintbigint Gesamtzahl der Seitenzuordnungen auf Blattebene im Index oder Heap.Cumulative count of leaf-level page allocations in the index or heap.

Bei einem Index entspricht eine Seitenzuordnung einer Seitenteilung.For an index, a page allocation corresponds to a page split.
nonleaf_allocation_countnonleaf_allocation_count bigintbigint Gesamtzahl der durch Seitenteilungen über der Blattebene verursachten Seitenzuordnungen.Cumulative count of page allocations caused by page splits above the leaf level.

0 = Heap oder columnstore0 = Heap or columnstore
leaf_page_merge_countleaf_page_merge_count bigintbigint Gesamtzahl der Seitenzusammenführungen auf der Blattebene.Cumulative count of page merges at the leaf level. Immer 0 für den columnstore-Index.Always 0 for columnstore index.
nonleaf_page_merge_countnonleaf_page_merge_count bigintbigint Gesamtzahl der Seitenzusammenführungen über der Blattebene.Cumulative count of page merges above the leaf level.

0 = Heap oder columnstore0 = Heap or columnstore
range_scan_countrange_scan_count bigintbigint Gesamtzahl der im Index oder Heap gestarteten Bereichs- und Tabellenscans.Cumulative count of range and table scans started on the index or heap.
singleton_lookup_countsingleton_lookup_count bigintbigint Gesamtzahl der Abrufvorgänge einzelner Zeilen aus dem Index oder Heap.Cumulative count of single row retrievals from the index or heap.
forwarded_fetch_countforwarded_fetch_count bigintbigint Anzahl der über einen weitergeleiteten Datensatz abgerufenen Zeilen.Count of rows that were fetched through a forwarding record.

0 = Indizes0 = Indexes
lob_fetch_in_pageslob_fetch_in_pages bigintbigint Gesamtzahl der aus der LOB_DATA-Zuordnungseinheit abgerufenen LOB-Seiten (Large Object).Cumulative count of large object (LOB) pages retrieved from the LOB_DATA allocation unit. Diese Seiten enthalten Daten, die in Spalten vom Datentyp gespeichert sind Text, Ntext, Image, varchar(max), Nvarchar () max), varbinary(max), und Xml.These pages contain data that is stored in columns of type text, ntext, image, varchar(max), nvarchar(max), varbinary(max), and xml. Weitere Informationen finden Sie unter Datentypen (Transact-SQL).For more information, see Data Types (Transact-SQL).
lob_fetch_in_byteslob_fetch_in_bytes bigintbigint Gesamtzahl der abgerufenen LOB-Datenbytes.Cumulative count of LOB data bytes retrieved.
lob_orphan_create_countlob_orphan_create_count bigintbigint Gesamtzahl verwaister LOB-Werte, die für Massenvorgänge erstellt werden.Cumulative count of orphan LOB values created for bulk operations.

0 = Nicht gruppierter Index0 = Nonclustered index
lob_orphan_insert_countlob_orphan_insert_count bigintbigint Gesamtzahl verwaister LOB-Werte, die während Massenvorgängen eingefügt werden.Cumulative count of orphan LOB values inserted during bulk operations.

0 = Nicht gruppierter Index0 = Nonclustered index
row_overflow_fetch_in_pagesrow_overflow_fetch_in_pages bigintbigint Gesamtwert der Zeilenüberlauf-Datenseiten, die aus der ROW_OVERFLOW_DATA-Zuordnungseinheit abgerufen werden.Cumulative count of row-overflow data pages retrieved from the ROW_OVERFLOW_DATA allocation unit.

Diese Seiten enthalten Daten in Spalten vom Typ varchar, nvarchar (n), varbinary, und Sql_variant , das seit aus der Zeile verschoben.These pages contain data stored in columns of type varchar(n), nvarchar(n), varbinary(n), and sql_variant that has been pushed off-row.
row_overflow_fetch_in_bytesrow_overflow_fetch_in_bytes bigintbigint Gesamtzahl der abgerufenen Zeilenüberlauf-Datenbytes.Cumulative count of row-overflow data bytes retrieved.
column_value_push_off_row_countcolumn_value_push_off_row_count bigintbigint 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.Cumulative count of column values for LOB data and row-overflow data that is pushed off-row to make an inserted or updated row fit within a page.
column_value_pull_in_row_countcolumn_value_pull_in_row_count bigintbigint Gesamtwert der Spaltenwerte für LOB-Daten und Zeilenüberlaufdaten, die durch Ausführen eines Pulls innerhalb eine Zeile verschoben werden.Cumulative count of column values for LOB data and row-overflow data that is pulled in-row. Dieser Vorgang findet statt, wenn Speicherplatz in einem Datensatz durch einen Updatevorgang frei gemacht wird und die Möglichkeit besteht, durch Ausführen eines Pulls einen oder mehrere Werte außerhalb von Zeilen aus den Zuordnungseinheiten LOB_DATA oder ROW_OVERFLOW_DATA zur IN_ROW_DATA-Zuordnungseinheit zu verschieben.This occurs when an update operation frees up space in a record and provides an opportunity to pull in one or more off-row values from the LOB_DATA or ROW_OVERFLOW_DATA allocation units to the IN_ROW_DATA allocation unit.
row_lock_countrow_lock_count bigintbigint Gesamtzahl der angeforderten Zeilensperren.Cumulative number of row locks requested.
row_lock_wait_countrow_lock_wait_count bigintbigint Gesamthäufigkeit, mit der DatenbankmodulDatabase Engine auf eine Zeilensperre gewartet hat.Cumulative number of times the DatenbankmodulDatabase Engine waited on a row lock.
row_lock_wait_in_msrow_lock_wait_in_ms bigintbigint Gesamtzahl der Millisekunden, die DatenbankmodulDatabase Engine auf eine Zeilensperre gewartet hat.Total number of milliseconds the DatenbankmodulDatabase Engine waited on a row lock.
page_lock_countpage_lock_count bigintbigint Gesamtzahl der angeforderten Seitensperren.Cumulative number of page locks requested.
page_lock_wait_countpage_lock_wait_count bigintbigint Gesamthäufigkeit, mit der DatenbankmodulDatabase Engine auf eine Seitensperre gewartet hat.Cumulative number of times the DatenbankmodulDatabase Engine waited on a page lock.
page_lock_wait_in_mspage_lock_wait_in_ms bigintbigint Gesamtzahl der Millisekunden, die DatenbankmodulDatabase Engine auf eine Seitensperre gewartet hat.Total number of milliseconds the DatenbankmodulDatabase Engine waited on a page lock.
index_lock_promotion_attempt_countindex_lock_promotion_attempt_count bigintbigint Gesamthäufigkeit, mit der DatenbankmodulDatabase Engine versucht hat, Sperren auszuweiten.Cumulative number of times the DatenbankmodulDatabase Engine tried to escalate locks.
index_lock_promotion_countindex_lock_promotion_count bigintbigint Gesamthäufigkeit, mit der DatenbankmodulDatabase Engine Sperren ausgeweitet hat.Cumulative number of times the DatenbankmodulDatabase Engine escalated locks.
page_latch_wait_countpage_latch_wait_count bigintbigint Gesamthäufigkeit, mit der DatenbankmodulDatabase Engine aufgrund eines Latchkonflikts gewartet hat.Cumulative number of times the DatenbankmodulDatabase Engine waited, because of latch contention.
page_latch_wait_in_mspage_latch_wait_in_ms bigintbigint Gesamtzahl der Millisekunden, die DatenbankmodulDatabase Engine aufgrund eines Latchkonflikts gewartet hat.Cumulative number of milliseconds the DatenbankmodulDatabase Engine waited, because of latch contention.
page_io_latch_wait_countpage_io_latch_wait_count bigintbigint Gesamthäufigkeit, mit der DatenbankmodulDatabase Engine auf einen E/A-Seitenlatch gewartet hat.Cumulative number of times the DatenbankmodulDatabase Engine waited on an I/O page latch.
page_io_latch_wait_in_mspage_io_latch_wait_in_ms bigintbigint Gesamtzahl der Millisekunden, die DatenbankmodulDatabase Engine auf einen E/A-Seitenlatch gewartet hat.Cumulative number of milliseconds the DatenbankmodulDatabase Engine waited on a page I/O latch.
tree_page_latch_wait_counttree_page_latch_wait_count bigintbigint Teilmenge von Page_latch_wait_count , die nur die B-Struktur Seiten der oberen Ebene umfasst.Subset of page_latch_wait_count that includes only the upper-level B-tree pages. Immer 0 für einen Heap oder einen columnstore-Index.Always 0 for a heap or columnstore index.
tree_page_latch_wait_in_mstree_page_latch_wait_in_ms bigintbigint Teilmenge von Page_latch_wait_in_ms , die nur die B-Struktur Seiten der oberen Ebene umfasst.Subset of page_latch_wait_in_ms that includes only the upper-level B-tree pages. Immer 0 für einen Heap oder einen columnstore-Index.Always 0 for a heap or columnstore index.
tree_page_io_latch_wait_counttree_page_io_latch_wait_count bigintbigint Teilmenge von Page_io_latch_wait_count , die nur die B-Struktur Seiten der oberen Ebene umfasst.Subset of page_io_latch_wait_count that includes only the upper-level B-tree pages. Immer 0 für einen Heap oder einen columnstore-Index.Always 0 for a heap or columnstore index.
tree_page_io_latch_wait_in_mstree_page_io_latch_wait_in_ms bigintbigint Teilmenge von Page_io_latch_wait_in_ms , die nur die B-Struktur Seiten der oberen Ebene umfasst.Subset of page_io_latch_wait_in_ms that includes only the upper-level B-tree pages. Immer 0 für einen Heap oder einen columnstore-Index.Always 0 for a heap or columnstore index.
page_compression_attempt_countpage_compression_attempt_count bigintbigint Die Anzahl der Seiten, die für Komprimierung auf PAGE-Ebene für bestimmte Partitionen einer Tabelle, eines Index oder einer indizierten Sicht bewertet wurden.Number of pages that were evaluated for PAGE level compression for specific partitions of a table, index, or indexed view. Dies schließt Seiten ein, die nicht komprimiert wurden, da beträchtliche Einsparungen nicht erreicht werden konnten.Includes pages that were not compressed because significant savings could not be achieved. Immer 0 für den columnstore-Index.Always 0 for columnstore index.
page_compression_success_countpage_compression_success_count bigintbigint Die Anzahl der Datenseiten, die mithilfe von PAGE-Komprimierung für bestimmte Partitionen einer Tabelle, eines Index oder einer indizierten Sicht komprimiert wurden.Number of data pages that were compressed by using PAGE compression for specific partitions of a table, index, or indexed view. Immer 0 für den columnstore-Index.Always 0 for columnstore index.

HinweiseRemarks

Dieses dynamische Verwaltungsobjekt akzeptiert keine abhängigen Parameter von CROSS APPLY und OUTER APPLY.This dynamic management object does not accept correlated parameters from CROSS APPLY and OUTER APPLY.

Sie können Sys. dm_db_index_operational_stats um die Länge der Zeit zu verfolgen, die Benutzer warten müssen, lesen oder Schreiben in eine Tabelle, Index oder Partition und die Tabellen oder Indizes, die hohen e/a-Aktivitäten sind auftreten oder während des Betriebs zu identifizieren Teilnehmern.You can use sys.dm_db_index_operational_stats to track the length of time that users must wait to read or write to a table, index, or partition, and identify the tables or indexes that are encountering significant I/O activity or hot spots.

Mithilfe der folgenden Spalten können Sie Konfliktbereiche erkennen.Use the following columns to identify areas of contention.

Eine gebräuchliche Zugriffsmuster für die Tabellen- oder Indexpartition zu analysieren, verwenden Sie diese Spalten:To analyze a common access pattern to the table or index partition, use these columns:

  • leaf_insert_countleaf_insert_count

  • leaf_delete_countleaf_delete_count

  • leaf_update_countleaf_update_count

  • leaf_ghost_countleaf_ghost_count

  • range_scan_countrange_scan_count

  • singleton_lookup_countsingleton_lookup_count

    Verwenden Sie die folgenden Spalten, um Latch- und Sperrkonflikte zu identifizieren:To identify latching and locking contention, use these columns:

  • Page_latch_wait_count und Page_latch_wait_in_mspage_latch_wait_count and page_latch_wait_in_ms

    Diese Spalten geben an, ob ein Latchkonflikt im Index oder Heap vorliegt, und zeigen die Bedeutung des Konflikts an.These columns indicate whether there is latch contention on the index or heap, and the significance of the contention.

  • Row_lock_count und Page_lock_countrow_lock_count and page_lock_count

    Diese Spalten geben die Häufigkeit an, mit der DatenbankmodulDatabase Engine versucht hat, Zeilen- und Seitensperren abzurufen.These columns indicate how many times the DatenbankmodulDatabase Engine tried to acquire row and page locks.

  • Row_lock_wait_in_ms und Page_lock_wait_in_msrow_lock_wait_in_ms and page_lock_wait_in_ms

    Diese Spalten geben an, ob ein Sperrkonflikt im Index oder Heap vorliegt, und zeigen die Bedeutung des Konflikts an.These columns indicate whether there is lock contention on the index or heap, and the significance of the contention.

    So analysieren Sie Statistiken der physischen e/as in einem Index oder heappartitionTo analyze statistics of physical I/Os on an index or heap partition

  • Page_io_latch_wait_count und Page_io_latch_wait_in_mspage_io_latch_wait_count and page_io_latch_wait_in_ms

    Diese Spalten geben an, ob physische E/A-Vorgänge zum Verschieben der Index- oder Heapseiten in den Arbeitsspeicher ausgestellt wurden, und zeigen die Anzahl der ausgestellten E/A-Vorgänge an.These columns indicate whether physical I/Os were issued to bring the index or heap pages into memory and how many I/Os were issued.

Hinweise zu SpaltenColumn Remarks

Die Werte in Lob_orphan_create_count und Lob_orphan_insert_count sollten immer gleich sein.The values in lob_orphan_create_count and lob_orphan_insert_count should always be equal.

Der Wert in den Spalten Lob_fetch_in_pages und Lob_fetch_in_bytes kann größer sein als 0 (null) bei nicht gruppierten Indizes, die mindestens eine LOB-Spalte als eingeschlossene Spalten enthalten.The value in the columns lob_fetch_in_pages and lob_fetch_in_bytes can be greater than zero for nonclustered indexes that contain one or more LOB columns as included columns. Weitere Informationen finden Sie unter Create Indexes with Included Columns.For more information, see Create Indexes with Included Columns. Entsprechend den Werten in den Spalten Row_overflow_fetch_in_pages und Row_overflow_fetch_in_bytes kann bei nicht gruppierten Indizes größer als 0 sein, wenn der Index Spalten enthält, die verschoben werden können außerhalb von Zeilen.Similarly, the value in the columns row_overflow_fetch_in_pages and row_overflow_fetch_in_bytes can be greater than 0 for nonclustered indexes if the index contains columns that can be pushed off-row.

Zurücksetzen der Leistungsindikatoren im MetadatencacheHow the Counters in the Metadata Cache Are Reset

Die zurückgegebene Daten Sys. dm_db_index_operational_stats existiert nur, solange das Metadaten-Cacheobjekt, das den Heap oder Index darstellt verfügbar ist.The data returned by sys.dm_db_index_operational_stats exists only as long as the metadata cache object that represents the heap or index is available. Diese Daten sind weder persistent noch im Hinblick auf Transaktionen konsistent.This data is neither persistent nor transactionally consistent. Sie können somit diese Leistungsindikatoren nicht verwenden, um zu ermitteln, ob und wann ein Index zuletzt verwendet wurde.This means you cannot use these counters to determine whether an index has been used or not, or when the index was last used. Weitere Informationen hierzu finden Sie unter Sys. dm_db_index_usage_stats ( Transact-SQL ) .For information about this, see sys.dm_db_index_usage_stats (Transact-SQL).

Die Daten für die einzelnen Spalten werden auf 0 gesetzt, wenn die Metadaten für den Heap oder Index in den Metadatencache verschoben und Statistiken gesammelt werden, bis das Cacheobjekt aus dem Metadatencache entfernt wird.The values for each column are set to zero whenever the metadata for the heap or index is brought into the metadata cache and statistics are accumulated until the cache object is removed from the metadata cache. Deshalb befinden sich die Metadaten eines aktiven Heaps oder Indexes wahrscheinlich immer im Cache; die Gesamtzahlen können die Aktivität seit dem letzten Starten der SQL ServerSQL Server-Instanz widerspiegeln.Therefore, an active heap or index will likely always have its metadata in the cache, and the cumulative counts may reflect activity since the instance of SQL ServerSQL Server was last started. Die Metadaten für einen weniger aktiven Heap oder Index werden, abhängig von der Verwendung, in und aus dem Cache verschoben.The metadata for a less active heap or index will move in and out of the cache as it is used. Folglich ist es möglich, dass Werte zur Verfügung stehen oder auch nicht.As a result, it may or may not have values available. Durch das Löschen eines Indexes werden die entsprechenden Statistiken aus dem Arbeitsspeicher entfernt und nicht mehr von der Funktion gemeldet.Dropping an index will cause the corresponding statistics to be removed from memory and no longer be reported by the function. Sonstige indexbezogene DDL-Vorgänge können dazu führen, dass der Wert der Statistiken auf 0 zurückgesetzt wird.Other DDL operations against the index may cause the value of the statistics to be reset to zero.

Verwenden von Systemfunktionen zum Angeben von ParameterwertenUsing System Functions to Specify Parameter Values

Können Sie die Transact-SQLTransact-SQL Funktionen DB_ID und OBJECT_ID , geben Sie einen Wert für die Database_id und Object_id Parameter.You can use the Transact-SQLTransact-SQL functions DB_ID and OBJECT_ID to specify a value for the database_id and object_id parameters. Das Übergeben von Werten, die für diese Funktionen nicht gültig sind, kann jedoch zu unerwarteten Ergebnissen führen.However, passing values that are not valid to these functions may cause unintended results. Stellen Sie stets sicher, dass bei der Verwendung von DB_ID oder OBJECT_ID eine gültige ID zurückgegeben wird.Always make sure that a valid ID is returned when you use DB_ID or OBJECT_ID. Weitere Informationen finden Sie im Abschnitt "Hinweise" in Sys. dm_db_index_physical_stats ( Transact-SQL ) .For more information, see the Remarks section in sys.dm_db_index_physical_stats (Transact-SQL).

BerechtigungenPermissions

Folgende Berechtigungen sind erforderlich:Requires the following permissions:

  • CONTROL-Berechtigung für das angegebene Objekt innerhalb der DatenbankCONTROL permission on the specified object within the database

  • VIEW DATABASE STATE-Berechtigung zum Zurückgeben von Informationen zu allen Objekten innerhalb der angegebenen Datenbank mithilfe des Objekt-Platzhalters @Object_id = NULLVIEW DATABASE STATE permission to return information about all objects within the specified database, by using the object wildcard @object_id = NULL

  • VIEW SERVER STATE-Berechtigung zum Zurückgeben von Informationen zu allen Datenbanken mithilfe des Datenbank-Platzhalters @Database_id = NULLVIEW SERVER STATE permission to return information about all databases, by using the database wildcard @database_id = NULL

    Wenn die VIEW DATABASE STATE-Berechtigung erteilt wurde, ist die Rückgabe für alle Objekte in der Datenbank zulässig, unabhängig davon, ob CONTROL-Berechtigungen für bestimmte Objekte verweigert wurden.Granting VIEW DATABASE STATE allows all objects in the database to be returned, regardless of any CONTROL permissions denied on specific objects.

    Nach dem Verweigern der VIEW DATABASE STATE-Berechtigung können keine Objekte in der Datenbank zurückgegeben werden, unabhängig von möglicherweise erteilten CONTROL-Berechtigungen für bestimmte Objekte.Denying VIEW DATABASE STATE disallows all objects in the database to be returned, regardless of any CONTROL permissions granted on specific objects. Auch wenn dem Datenbank-Platzhalter @Database_id= NULL angegeben wird, wird die Datenbank ausgelassen.Also, when the database wildcard @database_id=NULL is specified, the database is omitted.

    Weitere Informationen finden Sie unter dynamische Verwaltungssichten und-Funktionen ( Transact-SQL ) .For more information, see Dynamic Management Views and Functions (Transact-SQL).

BeispieleExamples

A.A. Zurückgeben von Informationen für eine angegebene TabelleReturning information for a specified table

Im folgenden Beispiel werden Informationen für alle Indizes und Partitionen der Person.Address-Tabelle in der AdventureWorks2012AdventureWorks2012-Datenbank zurückgegeben.The following example returns information for all indexes and partitions of the Person.Address table in the AdventureWorks2012AdventureWorks2012 database. Für die Ausführung dieser Abfrage ist zumindest die CONTROL-Berechtigung in der Person.Address-Tabelle erforderlich.Executing this query requires, at a minimum, CONTROL permission on Person.Address table.

Wichtig

Wenn Sie die Transact-SQLTransact-SQL-Funktionen DB_ID und OBJECT_ID zur Rückgabe eines Parameterwerts verwenden, sollten Sie sicherstellen, dass eine gültige ID zurückgegeben wird.When you are using the Transact-SQLTransact-SQL functions DB_ID and OBJECT_ID to return a parameter value, always ensure that a valid ID is returned. Wenn der Datenbank- oder Objektname nicht gefunden werden kann, wenn sie z. B. nicht vorhanden oder fehlerhaft geschrieben sind, geben beide Funktionen NULL zurück.If the database or object name cannot be found, such as when they do not exist or are spelled incorrectly, both functions will return NULL. Die Sys. dm_db_index_operational_stats -Funktion interpretiert NULL als Platzhalterwert, der alle Datenbanken oder alle Objekte angibt.The sys.dm_db_index_operational_stats function interprets NULL as a wildcard value that specifies all databases or all objects. Da dies ein versehentlicher Vorgang sein kann, veranschaulichen die Beispiele in diesem Abschnitt, wie Sie auf sichere Weise Datenbank- und Objekt-IDs bestimmen.Because this can be an unintentional operation, the examples in this section demonstrate the safe way to determine database and object IDs.

DECLARE @db_id int;    
DECLARE @object_id int;    
SET @db_id = DB_ID(N'AdventureWorks2012');    
SET @object_id = OBJECT_ID(N'AdventureWorks2012.Person.Address');    
IF @db_id IS NULL     
  BEGIN;    
    PRINT N'Invalid database';    
  END;    
ELSE IF @object_id IS NULL    
  BEGIN;    
    PRINT N'Invalid object';    
  END;    
ELSE    
  BEGIN;    
    SELECT * FROM sys.dm_db_index_operational_stats(@db_id, @object_id, NULL, NULL);    
  END;    
GO    

B.B. Zurückgeben von Informationen für alle Tabellen und IndizesReturning information for all tables and indexes

Im folgenden Beispiel werden Informationen für alle Tabellen und Indizes in der SQL ServerSQL Server-Instanz zurückgegeben.The following example returns information for all tables and indexes within the instance of SQL ServerSQL Server. Zum Ausführen dieser Abfrage erfordert die VIEW SERVER STATE-Berechtigung.Executing this query requires VIEW SERVER STATE permission.

SELECT * FROM sys.dm_db_index_operational_stats( NULL, NULL, NULL, NULL);    
GO    

Siehe auchSee Also

Dynamische Verwaltungssichten und -funktionen (Transact-SQL) Dynamic Management Views and Functions (Transact-SQL)
Index-verbundene dynamische Verwaltungssichten und-Funktionen ( Transact-SQL ) Index Related Dynamic Management Views and Functions (Transact-SQL)
Überwachen und Optimieren der Leistung Monitor and Tune for Performance
sys.dm_db_index_physical_stats (Transact-SQL) sys.dm_db_index_physical_stats (Transact-SQL)
Sys. dm_db_index_usage_stats ( Transact-SQL ) sys.dm_db_index_usage_stats (Transact-SQL)
Sys. dm_os_latch_stats ( Transact-SQL ) sys.dm_os_latch_stats (Transact-SQL)
Sys. dm_db_partition_stats ( Transact-SQL ) sys.dm_db_partition_stats (Transact-SQL)
Sys. allocation_units ( Transact-SQL ) sys.allocation_units (Transact-SQL)
sys.indexes (Transact-SQL)sys.indexes (Transact-SQL)