Tre passaggi molto rapidi per iniziare:
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')
Ti dirà l'ultima volta che è stato utilizzato ciascun indice, incluso l'indice cluster. Quindi almeno darti un sapore per quali tabelle si accede (e quali no).
2) Attivare una sessione di eventi estesi (o traccia del profiler sul lato server se si esegue pre-SQL 2012) per circa un'ora mentre l'app viene utilizzata. Puoi anche chiedere a un utente di eseguire varie azioni nell'applicazione in un ordine specifico in modo da poterlo correlare con la traccia / sessione.
Un suggerimento utile: se è possibile modificare la stringa di connessione utilizzata dall'app, aggiungere "; Nome applicazione = AppNameGoesHere" in modo da poter eseguire un filtro di traccia su quel particolare Nome applicazione. Buone pratiche comunque.
3) Ottieni una versione dell'applicazione funzionante su un server non di produzione. Sviluppa un elenco di test basati sul comportamento per l'applicazione ("Quando l'utente fa clic sul pulsante Nuovo elemento, crea un nuovo elemento per quell'utente," ecc.) Inizia a eliminare gli oggetti che ritieni non abbiano alcun impatto sui test rinominandoli (Uso un formato come objectName_DEPRECATED_YYYYMMDD - con la data del giorno in cui prevedo di eliminarlo.) Verifica nuovamente tutti i tuoi test.
Attraverso una combinazione della sessione Eventi estesi, l'utilizzo dell'indice DMV e la cancellazione soft, si dovrebbe essere in grado di identificare gli oggetti principali utilizzati dall'applicazione e un buon consenso generale su quale oggetto fa cosa.
In bocca al lupo!