Maison > base de données > tutoriel mysql > Comment puis-je récupérer l'historique de mes requêtes SQL Server ?

Comment puis-je récupérer l'historique de mes requêtes SQL Server ?

Susan Sarandon
Libérer: 2025-01-15 15:16:43
original
829 Les gens l'ont consulté

How Can I Retrieve My SQL Server Query History?

Récupération des requêtes SQL antérieures dans SQL Server Management Studio (SSMS)

Contrairement à certains systèmes de bases de données (MySQL, PostgreSQL), SQL Server n'enregistre pas automatiquement l'historique des requêtes. Par conséquent, la récupération des requêtes passées nécessite des approches différentes.

Vérification des plans d'exécution mis en cache

Si l'instance SQL Server n'a pas été redémarrée, le plan d'exécution de la requête peut rester en cache. Utilisez cette requête pour le rechercher :

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%';
Copier après la connexion

N'oubliez pas de remplacer '%something unique about your query%' par une partie distinctive de votre requête.

Examen des fichiers de récupération SSMS

Après un crash inattendu de SSMS, vous pourriez trouver des fichiers de récupération dans ce répertoire :

<code>C:\Users\<your_username>\Documents\SQL Server Management Studio\Backup Files\</code>
Copier après la connexion

Outils tiers et traçage côté serveur

Si les méthodes ci-dessus échouent, envisagez ces options :

  • Pack d'outils SSMS : Ce complément offre des fonctionnalités avancées, notamment la journalisation de l'historique des requêtes (remarque : cette fonctionnalité peut ne pas être gratuite dans SQL Server 2012 et les versions ultérieures).
  • Traçage côté serveur : Permet un suivi détaillé des événements, y compris les données d'exécution des requêtes. Il s'agit d'une méthode plus robuste pour une journalisation complète des requêtes.

Statistiques de requête améliorées

Pour afficher les requêtes mises en cache triées selon leur dernière heure d'exécution, utilisez cette requête améliorée :

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;
Copier après la connexion

Cela fournit une vue plus organisée de l'activité de requête récente.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal