본문 바로가기

MSSQL

SQL Server 성능 향상을 위한 튜닝 가이드 [2/8]


SQL Server for Developer: 개발자를 위한 튜닝 가이드

그 외 개발자 권고 사항
Benefits of Alert Tuning수칙1. 코드는 알아보기 쉽게 들여쓰기 합니다.
Benefits of Alert Tuning수칙2. 주석을 적절히 사용합니다.
Benefits of Alert Tuning수칙3. ANSI-92 SQL을 사용합니다
Benefits of Alert Tuning수칙4. 반드시 오류 여부를 확인하는 코드를 작성합니다.
Benefits of Alert Tuning수칙5. 기타 개발 시 중요한 조언들

2. 그 외 개발자 권고 사항

번호 수칙 체크
1 코드는 알아보기 쉽게 들여쓰기 합니다.  
2 주석을 적절히 사용합니다.  
3 ANSI-92 SQL을 사용합니다  
4 반드시 오류 여부를 확인하는 코드를 작성합니다.  
5 기타 개발 시 중요한 조언들  

수칙1. 코드는 알아보기 쉽게 들여쓰기 합니다.

기억을 잃어버린 자신이 알아볼 수 있도록 쓰라는 말이 있습니다. 쿼리는 알아보기 쉽게 필요한 경우 적당한 룰을 정해 알아보기 수월하게 작성하도록 합니다.

[따라 하기]

1.적당한 들여쓰기와 띄어쓰기는 코드를 알아보기 수월하게 합니다.

[01-01]

선언부와 초기값을 앞에 몰아 두었습니다. 한 칸 띄우고 반복 실행문 안쪽의 문은 TAB으로 들여쓰기를 했습니다. 또한 다음과 같이 불필요한 begin end 문도 생략할 수 있습니다.

use pubs
go

create proc up_test1
as
begin
        select * from authors
end
go

create proc up_test2
as
        select * from authors
go

sp_helptext up_test1
sp_helptext up_test2


수칙2. 주석을 적절히 사용합니다.

저장 프로시저나 뷰에 주석을 포함시킬 수 있는데 쿼리 안이 아니라 쿼리 밖에도 저장 가능합니다. 이를 이용에 뷰의 제작일, 작성자, 주요내용들을 소스와 함께 저장할 수 있습니다.

[따라 하기]

1.주석과 코드를 분리했지만 한꺼번에 만들어서 실행합니다.

[02-01]

2. 소스를 보기 위에 sp_helptext를 사용합니다. Syscomments 테이블에는 주석까지 함께 저장되어 있는 것을 알 수 있습니다. 소스관리는 코드 원문 뿐 아니라 주석도 함께 관리 합니다!

[02-02]



수칙3. ANSI-92 SQL을 사용합니다

가능한 한 표준ANSI 쿼리를 사용하도록 합니다


수칙4.반드시 오류 여부를 확인하는 코드를 작성합니다.

코드는 철저한 디버깅 속에 개발되어야 합니다.

[따라 하기 - 디버깅 툴을 설치하는 방법]

1.SQL설치를 할 때 다음항목을 설치하면 디버깅 도구가 설치되는 것입니다.

[04-01]

[따라 하기- 디버깅을 사용하는 방법]

1.쿼리 분석기를 실행합니다.

2.목표로 하는 저장 프로시저를 객체브라우저에서 선택합니다.

3.저장 프로시저를 오른쪽 클릭하고 팝업메뉴에서 디버그를 선택합니다

[04-02]

4.파라미터 리스트의 각각의 파라미터를 클릭하여 값을 입력하고 [실행]을 클릭하면 SQL서버는 디버거를 띄웁니다

[04-03]

5.그 다음은 일반 디버거 프로그램과 동일하므로 각자 연구해보도록 합니다.

[04-04]

[참고]

트리거 및 사용자 정의 함수 디버깅

트리거나 함수를 디버깅하려면 그 트리거나 함수를 사용하는 프로시저를 만들어 디버거를 돌리면 됩니다.



수칙5. 기타 개발 시 중요한 조언들

템플릿을 사용해봅시다!

[따라 하기 - 템플릿 활용]

1.기존의 템플릿을 사용해보고 마음에 들면 대량의 작업 시 중요한 기초 템플릿이 될 수 있어 개발시간을 절약할 수 있습니다.

2.쿼리 분석기의 템플릿을 선택 후 만들고자 하는 항목 선택 후 마우스 오른쪽 클릭 팝업메뉴에서 열기 선택을 합니다.

[05-01]

3.나오는 템플릿 화면에서 CTRL+SHIFT+M 을 클릭해 봅니다. 놀라운 화면이 나타납니다. 아주 쉽게 제작의 토대를 그대로 사용할 수 있습니다.

[05-02]

4.적절하게 기본값을 넣어봅니다. 더 나아가 주석도 위와 같은 방법으로 제작해 둡니다. 더욱 편리한 개발환경이 구축됩니다.

가상 데이터를 다음과 같은 방법을 사용해 입력해 봅시다

-- 가상 데이터 입력방법

-- 1.while 관용구
-- 
-- 2.더블링
-- 원하는 크기가 될 때까지 테이블로 자신의 데이터를 삽입하는 것

use pubs
go

set nocount on

drop table tb_double

create table tb_double
(
         id int identity
         , ph int null
)

insert tb_double(ph) values(30)
insert tb_double(ph) values(35)
insert tb_double(ph) values(40)
insert tb_double(ph) values(45)
insert tb_double(ph) values(50)

set nocount of
declare @cnt int,@rcnt int,@targ int

select @targ= 100,@cnt = count(*),@rcnt=@targ-count(*) from tb_double
while @rcnt > 0
begin
           set rowcount @rcnt
           insert tb_double(ph) select ph from tb_double 
           set @cnt = @cnt + @@rowcount 
           set @rcnt = @targ - @cnt
end

set rowcount 0

select * from tb_double

go

-- 3.랜덤 값 집어넣기
-- 다음의 filltable유틸을 사용하면 간편합니다.  

[참고]

filltabl 사용방법.

명령 프롬프트에서

fellable -Tpubs..테이블명 -N100000 -Usa -Ppassword -S서버명
하면 됩니다.

[출처] http://www.microsoft.com/korea/technet/sql/tuning_guide_developer02.mspx