이번에는 MSSQL에서의
쿼리 이력을 조회하는 방법을
정리해보고자 합니다.
DB를 쓰다 보면
무슨 쿼리를 돌렸는지,
무슨 쿼리가 실행이 되었는지
확인이 필요할 때가 있습니다.
이럴 때,
확인할 수 있는 방법입니다.
SQL SERVER에서 제공하는 것으로
시스템 테이블을 이용하여
확인하는 것입니다.
확인하는 방법은
다음과 같습니다.
SELECT db_name(st.dbid) DBName , object_schema_name(objectid, st.dbid) SchemaName , object_name(objectid, st.dbid) SPName , qs.total_elapsed_time , creation_time , last_execution_time , text FROM sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(qs.plan_handle)st JOIN sys.dm_exec_cached_plans cp ON qs.plan_handle = cp.plan_handle ORDER BY last_execution_time desc
위의 쿼리를 돌려주시면
동작했던 쿼리의 내용을 확인할 수 있습니다.
결과는 다음과 같습니다.
위처럼 결과가 나오게 됩니다.
이를 가지고 무슨 쿼리가 동작되었는지
확인을 해주시면 되십니다.
단, 이것에는 단점은 있습니다.
우선 해당 프로그램에서 동작된
쿼리만 나온다고 합니다.
하지만 제가 돌리지 않은 쿼리가
여기서 나오는걸 보았습니다.
그렇다면, SSMS, 토드 등에서 여러 사람이
돌린 것들이 다 나온 것인지
아니면 어플리케이션에서 돌린 것까지
나오는 것인지는
정확하게는 모르겠어요.
다만, 공식적으로는 안된다고 하니
이곳에 안나왔다고 해서
무조건 실행이 안된 쿼리라고 할 수는 없습니다.
또한, 휘발성 데이터입니다.
그렇기 때문에
너무 오래된 쿼리는 확인이 안될 수 있습니다.
쿼리의 보유기간은 저도 정확하게는 모르겠네요.
아무튼 오래는 안되니
참고해주시면 되실 것 같습니다.
정확하게 확인을 하고 싶다면
SQL SERVER 프로파일러는 이용해서
확인을 해보는 것을 추천합니다.
다만, 이것은 서버에도 부하가 많이 갑니다.
그렇기 때문에
그렇게 추천을 하지는 않습니다.
꼭 필요한 상황에서 꼭 필요한 시점에서만
쿼리를 프로파일러로 남겨서
확인을 해주시면 됩니다.
이상으 MSSQL에서의 쿼리 이력을
조회하는 방법이였습니다~
'컴퓨터관련 > MS-SQL' 카테고리의 다른 글
MS-SQL에서 프로시저 및 함수 쿼리 확인 및 생성,수정일자 등 정보 확인하기 (0) | 2020.03.09 |
---|---|
MS-SQL에서의 TRY, CATCH 이용 에러 예외처리 (0) | 2020.02.28 |
[MS-SQL]에러코드로 에러내용 가져오기 (0) | 2020.02.14 |
[MS-SQL]COUNT 기본 사용 및 응용사용(조건,중복제거) (0) | 2020.02.12 |
[MS-SQL]MERGE로 다중조건 UPDATE,INSERT,DELETE 하기 (0) | 2020.02.07 |