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

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

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
1670 Spatial Indexing 개요 (공간 인덱스) jevida(강성욱) 2016.01.11 7515
1669 Event Session을 이용한 Session Health check jevida(강성욱) 2016.01.11 6911
1668 SQL Server 2012 XML 플랜을 통한 병렬화 되지 않는 이유 살펴보기 jevida(강성욱) 2016.01.11 7214
1667 Event Session을 이용한 SQL OS Session Schedule check jevida(강성욱) 2016.01.11 7294
1666 Event Session을 이용한 Memory Health check jevida(강성욱) 2016.01.11 6953
1665 Event Session을 이용한 CPU Health check jevida(강성욱) 2016.01.11 8174
1664 DMV를 이용한 I/O Health check jevida(강성욱) 2016.01.11 7330
1663 CONCAT 함수 (문자열 연결하기)와 주의 사항 jevida(강성욱) 2016.01.11 27844
1662 SQL Server 2012 Columnstore Index jevida(강성욱) 2016.01.11 7489
1661 SQL Server 2012 File Stream / Table 관련 DMV jevida(강성욱) 2016.01.11 4849
1660 SQL Server2012 DMV – 메모리 덤프, 서비스, 구성 확인 jevida(강성욱) 2016.01.11 4702
» SQL Server2012 향상된 디버깅 기능 jevida(강성욱) 2016.01.11 4380
1658 SQL Server2012 매개 변수 구성 jevida(강성욱) 2016.01.11 3490
1657 SQL Server2012 도움말 설치 jevida(강성욱) 2016.01.11 3451
1656 SQL Server2012 Checkpoint 제어 jevida(강성욱) 2016.01.11 5260
1655 SSIS 패지키의 메타데이터 유효성 검사 중지하기 jevida(강성욱) 2016.01.11 2929
1654 SSIS 로그 보관기간 설정 (CleanUp 기간 설정) jevida(강성욱) 2016.01.11 4276
1653 SSIS 패키지 보호 레벨 jevida(강성욱) 2016.01.11 3867
1652 DATABASE의 TABLE 및 COLUMN COMMENT 출력 joe 2015.09.10 7601
1651 백업 히스토리 모니터링 jevida(강성욱) 2015.03.31 11611





XE Login