Ich kenne keinen vollständig genauen und zuverlässigen Weg, um dies zu verfolgen.
Eine Möglichkeit, zumindest etwas potenziell Nützliches zu erhalten, besteht darin, Snapshots von sys.dm_db_index_usage_stats zu speichern , insbesondere die user_lookups
Spalte für index_id 0 (RID-Suche) und 1 (Schlüsselsuche). Diese DMV kann aus vielen Gründen zurückgesetzt werden, einschließlich Datenbank- oder Instanzneustarts. Durch das Neuerstellen (aber nicht das Reorganisieren) und den Index wird auch der zugehörige DMV-Eintrag in SQL Server 2012 und höher gelöscht, was die Arbeit erschweren kann. Sie müssen Informationen ziemlich regelmäßig erfassen und anhand einer Heuristik entscheiden, ob die DMV zwischen den Erfassungen zurückgesetzt wird.
Die Indexverwendungsstatistik DMV gibt auch nur an, wie oft ein Plan mit einer Suche ausgeführt wird. Ein Plan, der eine einzelne Schlüsselsuche enthält, erhöht den Zähler um 1, unabhängig von der Anzahl der tatsächlich durchgeführten Suchvorgänge. Es wird auch erhöht, selbst wenn die Suche überhaupt nicht ausgeführt wird.
Die DMV sys.dm_db_index_operational_stats zeichnet die Anzahl der tatsächlich durchgeführten Singleton-Suchvorgänge auf, unterscheidet jedoch nicht zwischen Singleton-Suchvorgängen im Index und solchen, die aus einem Schlüssel- oder RID-Suchvorgang resultieren. Daher ist sie für Ihren Zweck nicht nützlich.
Singleton-Suchvorgänge sind ein anderer Name für Test-Scans, der vom Access Methods-Objekt gemeldet wird. Es gibt keine Möglichkeit, zwischen einer "normalen" Singleton-Suche in einem eindeutigen Index und einer Singleton-Suche zu unterscheiden, die sich aus einer Suche ergibt. Dies bedeutet, dass der Zähler für Zugriffsmethoden-Testscans für Sie nicht nützlich ist. Die AM-Zähler sind sowieso sehr verrauscht, und es gibt keine Möglichkeit, die Zähler mit einem bestimmten Index zu korrelieren.