데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

IN 절 사용시 예기치 못한 액세스 위반과 SQL Server 종료

 

  • Version : SQL Server 2008, 2008R2, 2012

 

이번 포스트는 CSS SQL Server Engineer 팀블로그에 게제된 내용으로 SQL Server의 버그와 함께 핫픽스를 통한 해결 방법을 안내하고 있다.

 

필자가 원문의 글을 읽고 이해한 내용을 포스팅하는 관계로 주관적인 해석 및 번역의 오류나 기술적인 오류가 있음을 미리 인지한다.

 

SQL Server 2008 이상의 버전에서 IN절에 큰 상수의 숫자를 사용하면 예기치 않게 SQL Server가 종료될 수 있다고 한다. 이때 오류 로그에는 어떠한 SQL 덤프가 생성되지 않는다.

 

대부분의 경우에는 이러한 유형의 문제를 경험하지 못 할 수 있다. 이 조건을 만족하기 위해서는 IN 절이 일치 하지 않는 숫자 데이터 형식이 있어야 한다.

 

예를 들어 create table t (c1 numeric(3, 0))로 생성한 테이블이 있다고 가정할 때 IN 절에 (6887, 18663, 9213, 526, 30178, 17358, 0.268170, 25638000000000.000000)와 같은 조건을 사용하였을 때 c1의 정의와 크기에 벗어난다.

 

이는 최종 쿼리 사용계획에 예기치 못한 동작을 발생시키고 사용자가 임의 쿼리(ad-hoc) 쿼리를 수행하고 열의 전체 소수 자릿수를 초과 하는 임의의 숫자를 추가하였을 때 일반적으로 발생 한다.

 

(테스트 해보려고 했지만 아쉽게도 모든 테스트 장비의 버전이 SP 와 CU가 적용되어 있어 테스트를 할 수 없었다.)

이 문제를 해결하기 위해 핫픽스 및 누적 업데이트를 적용해야 한다.

  • SQL Server 2012 SP1 CU
  • SQL Server 2012 CU6
  • SQL Server 2008 SP3 CU9

 

 

[참고 자료]

 


강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

 

No. Subject Author Date Views
1830 SQL Server 2012 Sp1 설치 이슈 및 해결 jevida(강성욱) 2016.09.30 1578
1829 SSD에서 DBCC CHECKDB 성능 벤치마킹 jevida(강성욱) 2016.09.30 1931
1828 Collation에 따른 ALTER DATABASE 실패 jevida(강성욱) 2016.09.30 1942
1827 LDF 파일이 잘리지 않는 이유 jevida(강성욱) 2016.09.30 2054
1826 Tempdb 경합 확인 및 해결 (Tempdb Contention) jevida(강성욱) 2016.09.30 2220
1825 SQL Server IO 병목 확인과 오해 jevida(강성욱) 2016.09.30 2502
1824 SQL Version에 따른 sp_prepare 정보 반환 jevida(강성욱) 2016.09.30 1716
1823 DReplay 활성 세션 초과 에러 jevida(강성욱) 2016.09.30 1542
1822 저장 프로시저 내 임시 테이블 사용과 프로시저 재컴파일 jevida(강성욱) 2016.09.30 1870
1821 NUMA 노드와 추척플래그 8048 jevida(강성욱) 2016.09.30 820
1820 온라인 인덱스 리빌드와 조각화 증가 jevida(강성욱) 2016.09.30 1606
1819 VARCHAR(MAX) and NTEXT 쿼리 성능 jevida(강성욱) 2016.09.30 4476
1818 CPU 리소스 상태에 따른 병렬 처리 제한 jevida(강성욱) 2016.09.30 1077
1817 매개변수 값의 변경과 SQL 서버 성능 저하 jevida(강성욱) 2016.09.30 1271
» IN 절 사용시 예기치 못한 액세스 위반과 SQL Server 종료 jevida(강성욱) 2016.09.30 1060
1815 SQL 버전과 CLR (.NET Framework 버전에 따른 오류) jevida(강성욱) 2016.09.30 1189
1814 SWITCHOFFSET 내장함수의 잘 못된 예측 - 미리 계산한 값을 쿼리에 연결하여 최적화 하기 jevida(강성욱) 2016.09.30 1327
1813 테이블 반환 매개변수 사용과 SQL 2012의 향상된 캐싱 기능 jevida(강성욱) 2016.09.30 1233
1812 디스크 섹터 크기와 데이터베이스 성능 jevida(강성욱) 2016.09.29 1636
1811 CLR 사용시 CPU 사용률 증가 현상 jevida(강성욱) 2016.09.29 1761





XE Login