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) |
'DBMS > SQL Server' 카테고리의 다른 글
[SQL Server] 로그인 연결 오류, 오류:18456 (2) | 2016.06.23 |
---|---|
[SQL Server] insert 시 데이터 잘림 오류 무시하고 insert 하기 (0) | 2016.06.08 |
[SQL Server] 프로시저 스크립트 확인하는 여러가지 방법 (0) | 2016.04.05 |
[SQL Server] IDENTITY 속성의 열은 고유할까? (0) | 2016.03.22 |
[SQL Server] 임시 테이블 생성시 #을 3개이상 붙이면? (0) | 2016.03.08 |