쿼리스토어는?
명령문을 컴파일/분석한다 -> 컴파일 후에 각 명령어를 실행하고 통계 알람을 받는다.
-> 해당되는 통계를 메모리에 캐시하고 쿼리와 실행 계획을 집계한다. -> 정기적으로
설정에 따라 데이터를 새로 고친다.
SQL프로파일러보다 성능에 부화를 조금밖에 주지 않는 이유는? 비동기로 실행이 된다.
- 3~0.5% 정도의 성능에 영향
- 프로파일러는 40~15%이상의 성능에 영향을 준다.
옵티마이저는 통계를할떼 테이블정보와 인덱스정보를 수집한다. 쿼리 저장소는 변경전, 후의 값을 가지고있어 분석하기 더 편하다.
장점 : 실행계획이 변경되서 성능 저하 원인을 찾기 편함. 인덱스 변경, 컬럼 속성이 변경 된 다음 쿼리속도(실행계획 등)을 확인하고 비교 가능하다.
즉 변경 전/후를 비교해서 무엇때문에 늦어지는지를 확인 가능하다는 것.
그리고 문제가 발생 할 때 그에 따른 쿼리 목록을 보여주면서 해당 자원 사용량도 보여준다.
실행계획 변경을 모니터링 가능하다.
쿼리튜닝 자동모드는
1. 데이터베이스 옵션에서 작동모드를 읽기/쓰기로 바꿈
2. 모니터링은 15분에 한번씩 통계수집은 1시간. 30일 지난녀석은 날려버림으로 셋팅이 변경됨
-- 데이터베이스를 새로고침을 해줘야 '쿼리저장소'가생김
--쿼리 저장소 설정 옵션 보기
SELECT * FROM SYS.database_query_store_options
-- 실행계획 확인하는 쿼리문
SELECT
qsqt.query_text_id,
qsqt.query_sql_text,
qsp.plan_id,
qsq.*
FROM SYS.query_store_plan AS qsp
INNER JOIN SYS.query_store_query AS qsq
ON qsp.query_id = qsp.query_id
INNER JOIN SYS.query_store_query_text AS qsqt
ON qsq.query_text_id = qsqt.query_text_id
'Database > MSSQL work' 카테고리의 다른 글
클러스터 지정에 따른 인덱스 실행계획 비교하기 (0) | 2020.11.27 |
---|---|
SQL 대량의 데이터 랜덤으로 넣기 (0) | 2020.11.27 |
GUI로 sql 쿼리 자동 튜닝 설정, 강제계획 실행, 추적(쿼리저장소) (0) | 2020.11.25 |
SQL 자동튜닝 설정 코드 (0) | 2020.11.25 |
PLAN CACHE에대해 (예상실행계획)내부 결과를 반환하는 캐시쿼리 (0) | 2020.11.25 |