안녕하세요.

얼마 전에 SQL 버전을 2012 Standard에서 2016 Standard로 업그레이드하면서 DB 이관을 했습니다.


그런데 이관 후에 쿼리 플랜이 재컴파일이 되는 이슈가 발생하고 있습니다.

즉, 쿼리 플랜이 적재되지 않고 계속 갱신됩니다. (Plan Cache 생성됐다가 바로 삭제됨)


sys.dm_exec_query_stats, sys.dm_exec_cached_plans 테이블의 count(*)를 연속으로 확인하면 5, 1, 10, 0, 2 이렇게 값이 계속 바뀌고,

해당 테이블의 쿼리 플랜 데이터도 유지되지 않고 계속 변경되는 것을 확인했습니다. 

(이관 전에는 수천개의 유지되는 쿼리 플랜 데이터가 있었습니다.)


SQL 버전을 업그레이드 했다고 이러한 현상이 발생하지는 않을것 같습니다.

DB 서버의 내용은 아래와 같습니다. (이중에 원인이 될 만한 내용이 있을까 하여 남깁니다.)


- DB 백업/복원 방식 : 풀백업(norecovery 복원) -> 차등백업(norecovery 복원) -> 로그백업(recovery 복원)

- OS : Windows Server 2016 Standard

- DB : MSSQL 2016 Standard

- Lock Pages In Memory 설정

- Min/Max Server Memory : 124,000

* 물리 메모리는 128GB이고, 메모리 설정한 만큼 sql service가 메모리를 점유하고 있음.

- 추척플래그 ON : T845, T1118, T1204, T1222

- 매일 새벽 통계 업데이트 실행 (유지 관리 계획)

- DB 호환성 수준 : SQL Server 2012(110)

* SQL Server 호환성에 따라서 쿼리 플랜이 다르기에 바로 호환성을 높혀서 사용하면 쿼리 플랜이 변경될 수 있음.

* 복원 직후 호환성 수준을 SQL Server 2016(130)으로 변경했다가 위 내용을 접하고 다시 SQL Server 2012(110)로 설정한 상태임.

- 주로 Stored Procedure를 사용하고, 극히 일부에서만 리컴파일 옵션 사용함.


프로파일러에서 SP:Recompile을 찾아봤는데 의심할 만한 결과는 나오지 않았습니다.

그리고 SQL 로그에도 관련 내용은 없습니다.


업그레이드 전에는 지속적으로 DMV를 통해 쿼리 성능을 확인했는데, 현재는 쿼리 플랜이 남지 않아서 할 수가 없네요.

또한 CPU 사용률도 전 서버보다 높아졌는데, 재컴파일로 인한 것이 아닐까 생각하고 있습니다.


어떠한 부분을 확인해 봐야 할까요? 도움 부탁 드립니다.


No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 33688
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 16961
» [SQL2016] 쿼리 플랜 재컴파일 이슈 (Plan Cache 삭제) [2] 망고 2019.07.30 1092
10482 두개의 값을 하나로 표시 하려고 합니다 [5] 슈토파이터 2019.07.30 1047
10481 delete시 외래키 때문에 (?) 속도가 느린경우.. [1] 어렵다어려워 2019.07.29 2384
10480 sql server browser 사용 하시는분 계시나요? [1] 세기말텐션 2019.07.29 1030
10479 mdb관련 질문 [1] 초코송이 2019.07.27 965
10478 SSIS 패키지 버전 8-> 6으로 변경하는 하는 방법 [1] 꿀밤 2019.07.24 838
10477 sql 상관서브쿼리 질문드립니다. [1] 잎세 2019.07.23 859
10476 현재 부서에서 상위 Root 부서까지 값이 설정된 부서번호 및 설정값 찾는 쿼리 [1] 마이더스 2019.07.22 1112
10475 프로파일러 ApplicationName 유형 질문 [1] 짱지1 2019.07.22 863
10474 접속기록보관때문에 문의합니다. [2] 하이홍구리 2019.07.21 1070
10473 SQL AlwaysON vs Mirroring 기능 장단점좀 요청 드립니다. [1] 제비 2019.07.19 1421
10472 Index가 걸려있는 컬럼 조회시, 정렬이 어떻게 선언되어 있는지 쿼리조회 가능한가요? [2] 무념 2019.07.18 1079
10471 DB변경내용 확인할 수 있나요 [3] 홍인표_314265 2019.07.15 1028
10470 where절에서 앞의 조건에 따라 뒤의 조건이 달라질 때 [5] 길주석 2019.07.13 1288
10469 순서대로 데이터들 정렬하려고 합니다 [2] 슈토파이터 2019.07.11 999
10468 테이블 비교하여 update하는 로직 문의 [1] sh17 2019.07.05 1067
10467 주차별로 집계 데이터를 만들고 싶습니다. [1] 문성원 2019.07.04 995
10466 버전 업그레이드시 데이터 이관문제 질문드립니다. [3] 돼지꿈 2019.07.03 1169
10465 테이블 union에서 ROW_NUMBER 페이징처리시... [1] seyo 2019.07.01 1753
10464 고수님들께 질의드립니다 [1] 닉닉닉스스스 2019.06.21 1532





XE Login