데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

안녕하세요.

얼마 전에 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
10488 날짜 필드를 하나로 통일해서 QUERY 작성 하는법 [1] 슈토파이터 2019.08.08 1266
10487 PK 생성 시 클러스터형을 많이 쓰나요? [2] james_12 2019.08.04 1096
10486 테이블에 있는 데이터로 24시간를 사이를 채우는 방법 문의 드립니다 [2] 화이팅! 2019.08.01 1024
10485 BackupIoRequest::ReportIoError: read failure on backup device 'D:\\backup.bak'. Operating system error 13(데이터가 올바르지 않습니다.). [1] 박판규 2019.08.01 839
10484 엑셀 자료를 받아서 업로드 할때 변환오류같은데요 [2] 아싸라비아콜롬비아 2019.07.31 895
» [SQL2016] 쿼리 플랜 재컴파일 이슈 (Plan Cache 삭제) [2] 망고 2019.07.30 971
10482 두개의 값을 하나로 표시 하려고 합니다 [5] 슈토파이터 2019.07.30 975
10481 delete시 외래키 때문에 (?) 속도가 느린경우.. [1] 어렵다어려워 2019.07.29 1247
10480 sql server browser 사용 하시는분 계시나요? [1] 세기말텐션 2019.07.29 920
10479 mdb관련 질문 [1] 초코송이 2019.07.27 876
10478 SSIS 패키지 버전 8-> 6으로 변경하는 하는 방법 [1] 꿀밤 2019.07.24 729
10477 sql 상관서브쿼리 질문드립니다. [1] 잎세 2019.07.23 757
10476 현재 부서에서 상위 Root 부서까지 값이 설정된 부서번호 및 설정값 찾는 쿼리 [1] 마이더스 2019.07.22 1005
10475 프로파일러 ApplicationName 유형 질문 [1] 짱지1 2019.07.22 783
10474 접속기록보관때문에 문의합니다. [2] 하이홍구리 2019.07.21 984
10473 SQL AlwaysON vs Mirroring 기능 장단점좀 요청 드립니다. [1] 제비 2019.07.19 1133
10472 Index가 걸려있는 컬럼 조회시, 정렬이 어떻게 선언되어 있는지 쿼리조회 가능한가요? [2] 무념 2019.07.18 993
10471 DB변경내용 확인할 수 있나요 [3] 홍인표_314265 2019.07.15 918
10470 where절에서 앞의 조건에 따라 뒤의 조건이 달라질 때 [5] 길주석 2019.07.13 1195
10469 순서대로 데이터들 정렬하려고 합니다 [2] 슈토파이터 2019.07.11 916





XE Login