본문 바로가기

DBMS/SQL Server

[SQL Server] SQL Server 2014 CE 알고리즘 변경

 

SQL Server 2014로 업그레이드 후 느려졌던 쿼리가 빨라지고, 빨랐던 쿼리가 느려지는 현상이 발생하였다.

CE (Cardinality Estimator) 즉, 행 예측 로직이 변경되었기 때문이다.

해결 방안은 DB 호환수준을 이전 버전으로 적용하거나, 추적플래그를 설정할 수도 있고, 개별 쿼리를 튜닝하는 방법으로 조치할 수도 있다.

 

DB 호환 수준을 확인하는 방법과 호환 수준을 변경하는 방법, 추적플래그를 설정하는 방법을 확인해보자.

 

 -- 호환 수준 확인

 SELECT COMPATIBILITY_LEVEL

 FROM SYS .DATABASES

 WHERE DATABASE_ID = DB_ID()

 GO

 

 -- DB 호환 수준 조정

 ALTER DATABASE DB

 SET COMPATIBILITY_LEVEL = 110

 GO

 

 ALTER DATABASE DB

 SET COMPATIBILITY_LEVEL = 120

 GO

 

 -- 추척플래그 설정 (쿼리의 마지막에 힌트 설정)

 -- 70CE

 OPTION (QUERYTRACEON 9481)

 

 -- 120CE

 OPTION (QUERYTRACEON 2312)