Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come visualizzare la cronologia delle query in SQL Server Management Studio

[Poiché questa domanda verrà probabilmente chiusa come duplicato.]

Se SQL Server non è stato riavviato (e il piano non è stato rimosso e così via), potresti riuscire a trovare la query nella cache del piano.

SELECT t.[text]
FROM sys.dm_exec_cached_plans AS p
CROSS APPLY sys.dm_exec_sql_text(p.plan_handle) AS t
WHERE t.[text] LIKE N'%something unique about your query%';

Se hai perso il file a causa di un arresto anomalo di Management Studio, potresti essere in grado di trovare i file di ripristino qui:

C:\Users\<you>\Documents\SQL Server Management Studio\Backup Files\

Altrimenti dovrai usare qualcos'altro in futuro per aiutarti a salvare la cronologia delle query, come SSMS Tools Pack come menzionato nella risposta di Ed Harper, sebbene non sia gratuito in SQL Server 2012+. Oppure puoi impostare una traccia leggera filtrata sul tuo nome di accesso o host (ma usa una traccia lato server, non Profiler, per questo).

Come ha commentato @Nenad-Zivkovic, potrebbe essere utile partecipare a sys.dm_exec_query_stats e ordina per last_execution_time :

SELECT t.[text], s.last_execution_time
FROM sys.dm_exec_cached_plans AS p
INNER JOIN sys.dm_exec_query_stats AS s
   ON p.plan_handle = s.plan_handle
CROSS APPLY sys.dm_exec_sql_text(p.plan_handle) AS t
WHERE t.[text] LIKE N'%something unique about your query%'
ORDER BY s.last_execution_time DESC;