SQL Server2012 향상된 디버깅 기능

   

-      Version : SQL Server 2012

   

SSMS의 디버깅 기능은 SQLServer 2008부터 추가 되었다. SQL Server 2012에서는 좀더 개발환경에맞추어서 디버깅 기능이 향상 되었다.

   

SQL Server 2008 디버깅: http://sqlmvp.kr/140176612565

   

SQL Server 2012에서도 디버깅 하는 방법은 SQL Server 2008과 동일하다. [디버그] – [디버깅 시작] 또는 [Alt+ F5], 빠른 실행 도구 모음에서 [디버그]를실행하면 된다.

    

   

디버깅 실습을 위해서 간단한 코드를 생성 한다.

declare @a int = 1

   

while (@a < 10)

begin

    print @a

    set @a = @a + 1

end

   

코드를 실행해 보면 변수의 값이 10보다 작을 때까지 +1씩 카운터하며 루프로 동작하는 것을 확인 할 수 있다.

   

   

중단점을 설정하는 방법은 [F9] 또는 해당 위치에서 마우스로 클릭, 또는 마우스 우클릭하여 [중단점 삭제 / 설정]을 할 수 있다..

   

[SQL Server 2008]

   

   

[SQL Server 2012]

SQL Server 2012의 경우에는 이전 버전보다 많은 기능이있음을 메뉴만 살펴보아도 알 수 있다.

   

   

중단점의 옵션 중에 [조건]이라는항목이 있다. 조건의 경우에는해당 조건이 충족 되었을 때 실행이 중단점에서 멈추는 기능이다.

   

   

우리는 상황에 따라 반복을 수 십, 수 백번 해야 하는데 이때 특정값이 도달했을 때 멈추는 기능이 필요 할 것이다. 아래 예시 화면은@a의 값이 5가 되었을 때 중단한다.

   

   

적중 횟수는 현재 중단점이 설정된 부분이 몇 번 호출 되었는가에 따라서 그 카운트가 충족 되었을 때 실행을 멈춘다.

   

중단점 적중 횟수는 다음과 같이 설정 할 수 있다. 변수 상관없이해당 위치가 5번 호출되었을 때 중단한다.

   

중단점에 조건 또는 적중 횟수 등 작업을 부여하게 되면 중단점의 모양이 빨간 원에서 가운데 흰색 십자가 모양의무늬로 변경되는 것을 확인 할 수 있다. 이때 마우스를 중단점 위치에 롤오버해보면 툴팁으로 중단점이설정된 내역이 간락하게 나타난다.

 

 

코드가 실행 될 때 SQL Server 2012에서는 빠른 팝업으로정보를 볼 수 있다. 또한 세션이 실행 되는 동안 조건 값 등을 바로 변경 할 수 있다.

   

   

아래 화면은 현재 조건 값 4를 빠른 팝업에서 9로 변경하였을 때 결과 화면이다. 내가 직접 수정한 조건이 바로적용되어 결과가 나타난 것을 확인 할 수 있다.

   

   

SQL Server 2008에 비해서 여러 기능이 추가 되었지만 프로그래머입장에서 보면 아직 디버그 기능이 부족한 건 사실이다. 하지만 앞의 내용만 잘 활용하더라도 개발 효율을향상 되리라 생각한다. 


강성욱 / jevida@naver.com

Microsoft SQL Server MVP

Blog : http://sqlmvp.kr

Facebook : http://facebook.com/sqlmvp




No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 45009
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 24054
1674 복사 전용 백업(COPY ONLY BACKUP) jevida(강성욱) 2016.09.13 4075
1673 SQL Server 기본 백업 폴더 변경하기 jevida(강성욱) 2016.09.13 4177
1672 sp_helpindex 의 향상된 버전 minsouk 2016.05.17 4617
1671 Spatial Index (공간 인덱스) 생성, 수정, 삭제 jevida(강성욱) 2016.01.11 9828
1670 Spatial Indexing 개요 (공간 인덱스) jevida(강성욱) 2016.01.11 7595
1669 Event Session을 이용한 Session Health check jevida(강성욱) 2016.01.11 6976
1668 SQL Server 2012 XML 플랜을 통한 병렬화 되지 않는 이유 살펴보기 jevida(강성욱) 2016.01.11 7568
1667 Event Session을 이용한 SQL OS Session Schedule check jevida(강성욱) 2016.01.11 7352
1666 Event Session을 이용한 Memory Health check jevida(강성욱) 2016.01.11 7007
1665 Event Session을 이용한 CPU Health check jevida(강성욱) 2016.01.11 8521
1664 DMV를 이용한 I/O Health check jevida(강성욱) 2016.01.11 7413
1663 CONCAT 함수 (문자열 연결하기)와 주의 사항 jevida(강성욱) 2016.01.11 28183
1662 SQL Server 2012 Columnstore Index jevida(강성욱) 2016.01.11 7640
1661 SQL Server 2012 File Stream / Table 관련 DMV jevida(강성욱) 2016.01.11 4930
1660 SQL Server2012 DMV – 메모리 덤프, 서비스, 구성 확인 jevida(강성욱) 2016.01.11 4858
» SQL Server2012 향상된 디버깅 기능 jevida(강성욱) 2016.01.11 4457
1658 SQL Server2012 매개 변수 구성 jevida(강성욱) 2016.01.11 3549
1657 SQL Server2012 도움말 설치 jevida(강성욱) 2016.01.11 3527
1656 SQL Server2012 Checkpoint 제어 jevida(강성욱) 2016.01.11 5426
1655 SSIS 패지키의 메타데이터 유효성 검사 중지하기 jevida(강성욱) 2016.01.11 3048





XE Login