Bonjour,
Est-il possible de retrouver, pour une base précise, la liste des 10 dernières requêtes effectuées?
Merci d'avance
Bonjour,
Est-il possible de retrouver, pour une base précise, la liste des 10 dernières requêtes effectuées?
Merci d'avance
Bonjour
Essayez le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 SELECT top 10 QS.creation_time Creation, QS.last_execution_time LastExec, QS.plan_generation_num NbComp, QS.execution_count NbExec, OBJECT_NAME(SQL.objectid) Procedures, SUBSTRING ( SQL.text, QS.statement_start_offset / 2 + 1, ( CASE WHEN QS.statement_end_offset = -1 THEN LEN(CONVERT(nvarchar(max), SQL.text)) * 2 ELSE QS.statement_end_offset END - QS.statement_start_offset ) / 2 + 1 ) AS Instruction FROM sys.dm_exec_query_stats QS CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) SQL ORDER BY QS.last_execution_time desc
Pour une période donnée, obtenir les requêtes exécutées et leurs contextes d'éxécutions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 DECLARE @DateHeureDebut varchar(20) -- Date et heure de début ,@DateHeureFin varchar(20); -- Date et heure de fin -- Période : SET @DateHeureDebut = '2016-01-08 16:00:00' SET @DateHeureFin = '2016-01-08 16:30:00' BEGIN SELECT convert(varchar(19),creation_time,120)AS [Dateheure], total_worker_time/execution_count AS [Avg CPU Time], total_logical_reads, execution_count, (total_elapsed_time - total_worker_time) / qs.execution_count AS [Avg Blocked], SUBSTRING(st.text, (qs.statement_start_offset/2)+1,((CASE qs.statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE qs.statement_end_offset END - qs.statement_start_offset)/2) + 1) AS statement_text ,query_plan FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) WHERE creation_time >= CONVERT(datetime,@DateHeureDebut,120) AND creation_time <= CONVERT(datetime,@DateHeureFin,120) ORDER BY creation_time DESC; END
Les 2 requêtes au dessus à base de sys.dm_exec_query_stats peuvent aider mais juste préciser que ce n'est pas parfait.
Certaines requêtes ne s'y retrouveront pas comme celles utilisées avec RECOMPILE ou les requêtes à coup zéro.
Donc attention si c'est le cas dans votre contexte.
++
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Partager