MSSQL 실행한 SQL 쿼리 이력을 확인하는 방법

SQL Server에서 실행했던 쿼리 이력을 확인 하고 싶은 경우가 있습니다.

에러 조사를 위해서라던가 성능 향상을 위해 쿼리를 확인 해야 하는등 여러 경우가 발생 합니다.

쿼리 이력을 확인 하는 방법을 바로 알아보겠니다.

아래는 SQL Server에서 실행했던 쿼리 이력을 확인하는 쿼리문 입니다.

 

SQL Server 쿼리 이력 확인

SELECT TOP 1000
	QS.creation_time, 
	--SQL
	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, 
	--실행한 SQL 
	ST.text, 
	--실행 계획 
	QS.total_worker_time, 
	QS.last_worker_time, 
	QS.max_worker_time, 
	QS.min_worker_time 
FROM 
	sys.dm_exec_query_stats QS 
--키워드
	CROSS APPLY 
	sys.dm_exec_sql_text(QS.sql_handle) ST 
ORDER BY 
	QS.creation_time DESC 

 

SELECT에서 TOP 1000을 하고 있기 때문에 최근 실행한 1000건만 취득 하고 있습니다.

더 많은 이력을 확인해야 하는 경우에는 TOP 1000삭제하고 실행하면 됩니다.

댓글