快捷搜索: 王者荣耀 脱发

【SQLServer】查询SQLServer执行过的SQL记录

直接贴代码:

SELECT TOP 1000 
--创建时间 
QS.creation_time, 
--查询语句 
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, 
--执行文本 
ST.text
FROM 
sys.dm_exec_query_stats QS 
--关键字 
CROSS APPLY 
sys.dm_exec_sql_text(QS.sql_handle) ST 
where
ST.text LIKE %select% 
ORDER BY 
QS.creation_time DESC

下面是对各属性进行别名优化后的SQL:

SELECT TOP
	1000 QS.creation_time AS 执行时间,
	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 执行的SQL语句,
	QS.execution_count AS 执行次数,
	ST.text AS SQL语句,
	QS.total_elapsed_time AS 耗时,
	QS.total_logical_reads AS 逻辑读取次数,
	QS.total_logical_writes AS 逻辑写入次数,
	QS.total_physical_reads AS 物理读取次数 
FROM
	sys.dm_exec_query_stats QS CROSS APPLY sys.dm_exec_sql_text ( QS.sql_handle ) ST 
WHERE
	ST.text LIKE %select% 
ORDER BY
	QS.creation_time DESC
经验分享 程序员 微信小程序 职场和发展