인프런 커뮤니티 질문&답변

박형구님의 프로필 이미지

작성한 질문수

SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법

조건절 상수화 이슈(로컬변수, 사용자정의함수), 테이블 변수 최적화 이슈

[섹션 2. 쿼리 금기사항]의[조건절 상수화 이슈]의 데모실행불가 및 결과차이 문의입니다.

해결된 질문

22.01.10 23:10 작성

·

307

1

안녕하십니까.

강의를 듣고 있는 수강생입니다.

현재 [섹션 2. 쿼리 금기사항]의[조건절 상수화 이슈]의 데모실행 중 [2) Index열 조건에 사용자 정의 함수]를 기동 중에 OPTION 실행이 불가한 문제와 OPTION을 실행하지 않을 시의 실행계획이 다른 문제가 발생하여 궁금해서 연락 드렸습니다. 

이하 옵션 실행 불가 화면의 캡쳐입니다.

이하 옵션을 실행하지 않고 쿼리만 실행 했을 시에 발생하는 실행계획 내용입니다.

혹시 해당문제의 발생이유를 알 수 있을지 확인 부탁드립니다.

이상입니다.

 

답변 1

1

김정선SQL님의 프로필 이미지
김정선SQL
지식공유자

2022. 01. 10. 23:38

안녕하세요 박형구님, 질문 감사합니다.

 

1. 사용하신 SQL Server Edtition이 어떻게 되는지요? 강의와 데모 주석에 보이는대로 해당 기능과 쿼리 힌트는 SQL Server 2019 부터 지원됩니다. 혹시 Edition이 다른지 확인 해 보세요. 그리고 추가 설명이 4장 함수에서 다루어지니 그 내용도 참고하시기 바랍니다. 

 

2. 실행 계획이 다른 부분도 강의(4장 포함)에서 다루어집니다, 조건절의 사용자 정의 함수로 인해서 상수화가 안되어 인덱스를 사용하지 못하는 경우이고 2019의 새로운 기능(SCALAR_UDF_INLINING)이 적용될 수 있는 경우에 인덱스를 사용할 수도 있기 때문에 실행 계획이 달라질 수 있습니다.

 

나중에 4장에서 함수 부분도 들으면서 추가 설명을 보시거나 테스트해 보시구요, 추가로 궁금한 점 있으면 질문주세요. 

 

김정선 드림