Drei sehr schnelle Schritte für den Einstieg:
1)
USE DatabaseName
SELECT [TableName] = OBJECT_NAME(object_id),
last_user_update, last_user_seek, last_user_scan, last_user_lookup
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID('DatabaseName')
Zeigt an, wann jeder Index zum letzten Mal verwendet wurde, einschließlich des Clustered-Index. Geben Sie also zumindest einen Vorgeschmack darauf, auf welche Tabellen zugegriffen wird (und auf welche nicht.)
2) Aktivieren Sie eine Extended Events-Sitzung (oder eine serverseitige Profiler-Ablaufverfolgung, wenn Sie Pre-SQL 2012 ausführen) für etwa eine Stunde, während die App verwendet wird. Sie können einen Benutzer auch auffordern, verschiedene Aktionen in der Anwendung in einer bestimmten Reihenfolge auszuführen, damit Sie sie mit dem Trace / der Sitzung korrelieren können.
Ein hilfreicher Vorschlag: Wenn Sie die von der App verwendete Verbindungszeichenfolge ändern können, hängen Sie "; Anwendungsname = AppNameGoesHere" an, damit Sie eine Ablaufverfolgungsfilterung für diesen bestimmten Anwendungsnamen ausführen können. Trotzdem gute Praxis.
3) Laden Sie eine Version der Anwendung herunter, die auf einem Nicht-Produktionsserver ausgeführt wird. Entwickeln Sie eine Liste verhaltensabhängiger Tests für die Anwendung ("Wenn der Benutzer auf die Schaltfläche Neues Element klickt, wird ein neues Element für diesen Benutzer erstellt" usw.). Beginnen Sie mit dem sanften Löschen von Objekten, die Ihrer Meinung nach keinen Einfluss auf die Tests haben, indem Sie sie umbenennen (Ich verwende ein Format wie objectName_DEPRECATED_YYYYMMDD - wobei das Datum der Tag ist, an dem ich es tatsächlich löschen möchte.) Überprüfen Sie alle Ihre Tests erneut.
Durch eine Kombination aus der Extended Events-Sitzung, der Indexverwendung DMV und dem vorläufigen Löschen sollten Sie in der Lage sein, die von der Anwendung verwendeten Hauptobjekte zu identifizieren und einen guten allgemeinen Konsens darüber zu erzielen, welches Objekt was tut.
Viel Glück!