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

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

Sp_reset_connection

jevida(강성욱) 2016.10.18 07:29 Views : 3457

Sp_reset_connection

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

SQL Server 프로파일러를 사용하다보면 sp_reset_connection이라는 항목을 확인할 수 있다. sp_reset_connection은 SQL Server의 폴링된 커넥션 동작이다.

 

 

 

SQL Server는 데이터베이스에 연결 할 때 완전히 새로운 연결을 설정하는 것보다 빠른 풀링된 연결을 사용한다. 폴링의 사용 이유는 연결에 대한 CPU 오버헤드를 줄이고 빠른 연결을 위해서이다.

SQL Server는 풀링된 연결 상태를 리셋하기 위해 sp_reset_connection을 호출 한다. 즉 SQL Server 내부적으로 호출하는 명령이다.

 

SQL Server 내부적으로 호출한다고 해서 신경을 쓰지 않아야 하는 것은 아니다. 해당 비율이 높다면 어플리케이션이 커넥션 재연결을 빈번하게 하는 것으로 판단할 수 있다. 경량 작업으로 빈번하게 재연결을 한다면 어플리케이션의 디자인을 수정하여 연결을 끊지 않고 사용하는 것이 좋다. 하지만 재연결의 빈도를 낮추기 위해 모든 연결을 유지하는 것은 클라이언트 및 SQL Server에 전체적으로 더 많은 커넥션 개수를 증가시켜 더 많은 오버헤드를 가져올 수도 있다.

 

SQL Server 2012 SP1 누적 업데이트9 에서는 sp_reset_connection 오버헤드를 줄이기 위한 내용이 포함되었다. 간단히 내용을 요약하면 응용프로그램이 SQL Server 연결을 하면 먼저 데이터베이스 켄텍스트를 설정하는데 이때 기본적으로 연결 SH 모드로 데이터베이스 잠금을 얻으려고 시도한다. 데이터베이스의 수가 많을수록 이 잠금을 얻는데 시간이 오래 걸린다. 대부분의 응용프로그램은 디자인으로 인해 이 문제가 발생하지 않지만 추가 잠금이 필요한 경우 spinlock으로 인한 CPU 오버헤드를 증가 시킬 수 있다고 한다. 자세한 내용은 다음 링크를 참고 한다.

 

 

[참고자료]

 


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

No. Subject Author Date Views
1953 프로시저 캐시에서 중복 쿼리 계획 확인 jevida(강성욱) 2016.10.18 3661
» Sp_reset_connection jevida(강성욱) 2016.10.18 3457
1951 성능분석 17탄 – SQLServer 블록킹 / 네트워크 관련 성능 카운터 jevida(강성욱) 2016.10.15 3730
1950 성능분석 16탄 – 메모리 / CPU 관련 성능 카운터 jevida(강성욱) 2016.10.15 5312
1949 성능분석 15탄 – I/O 관련 성능 카운터 jevida(강성욱) 2016.10.15 4020
1948 성능분석 14탄 – SQL Server 사용 성능 카운터 jevida(강성욱) 2016.10.15 3987
1947 성능분석 13탄 – 누락된 인덱스(missing index) jevida(강성욱) 2016.10.15 2367
1946 성능분석 12탄 – 문제 쿼리 식별 jevida(강성욱) 2016.10.15 2149
1945 성능분석 11탄 – 실행 계획 분석 jevida(강성욱) 2016.10.15 4191
1944 성능분석 10탄 – 쿼리 실행 대기 시간 분석(xevent) jevida(강성욱) 2016.10.15 1923
1943 성능분석 9탄 – 쿼리 실행 분석 jevida(강성욱) 2016.10.15 4070
1942 성능분석 8탄 – IO 통계 (DISK 활동 분석) jevida(강성욱) 2016.10.15 1472
1941 성능분석 7탄 – 프로파일러 대기 유형 및 PREEMPTIVE_OS_WRITEFILEGATHER jevida(강성욱) 2016.10.15 1628
1940 성능분석 6탄 – CPU 경합 및 동시성 관련 대기 유형 jevida(강성욱) 2016.10.15 1901
1939 성능분석 5탄 – 메모리 및 네트워크 관련 대기 유형 jevida(강성욱) 2016.10.15 2015
1938 성능분석 4탄 – 디스크 및 IO 관련 대기 유형 jevida(강성욱) 2016.10.15 2128
1937 성능분석 3탄 – 집계 대기 통계 jevida(강성욱) 2016.10.15 1934
1936 성능분석 2탄 – 실행 요청을 기다리는 작업 확인 및 분석 (병렬 처리 대기 확인) jevida(강성욱) 2016.10.15 1373
1935 성능분석 1탄 – 실행 요청을 기다리는 작업 확인 및 분석 jevida(강성욱) 2016.10.15 2012
1934 확장이벤트를 사용하여 데드락 정보 확인 jevida(강성욱) 2016.10.15 1564





XE Login