Wenn Sie 100% genau sein möchten, wird der Plan-Cache leider nicht gekürzt, da es in SQL Server alle Arten von Szenarien gibt, in denen ein Plan möglicherweise überhaupt nicht zwischengespeichert wird. Zum Beispiel OPTION (RECOMPILE), Nullkostenpläne, Optimierung für Ad-hoc-Workloads und Single-Use-Plan-Stubs usw.
Da Sie eine Methode wünschen, die zwischen 2000 und 2012 funktioniert, besteht Ihre einzige echte Option, um sicherzustellen, dass Sie die Verwendung abfangen, darin, eine serverseitige Ablaufverfolgung mit dem Audit Database Object Access
Ereignis zu verwenden:
http://msdn.microsoft.com/en-us/library/ms175013.aspx
Sie möchten nach filtern, ObjectType = 8278
damit Sie nur Ansichten abrufen , auf die zugegriffen wird:
http://msdn.microsoft.com/en-us/library/ms180953.aspx
Richten Sie dann einen Job ein, der die Dateidaten abruft und die Anzahl alle paar Stunden (oder sogar Tage, abhängig von der Datengenerierungsrate) aggregiert, und Sie können die auftretenden Zugriffe genau nachverfolgen.
Ja, ich hasse Trace genauso wie den nächsten, aber dies ist eines dieser Szenarien, in denen es das richtige Werkzeug für die jeweilige Aufgabe ist.
FWIW, 2012 konnten Sie auch Server Audit oder Extended Events verwenden , um den Objektzugriff zu verfolgen. Sobald Sie jedoch die Trace-Definition für 2000 erstellt haben, sollte sie größtenteils bis 2012 portierbar sein und Sie können Profiler zum Generieren verwenden die Skripte, um die Arbeit zu vereinfachen.