728x90

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

그 외 개발자 권고 사항

차주언 | SQL 컨설턴트

그 외 개발자 권고 사항

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

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

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

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



선언부와 초기값을 앞에 몰아 두었습니다. 한 칸 띄우고 반복 실행문 안쪽의 문은 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.주석과 코드를 분리했지만 한꺼번에 만들어서 실행합니다.



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



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

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

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

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

[따라 하기 - 디버깅 툴을 설치하는 방법]
1.SQL설치를 할 때 다음항목을 설치하면 디버깅 도구가 설치되는 것입니다.



[따라 하기- 디버깅을 사용하는 방법]
1.쿼리 분석기를 실행합니다.
2.목표로 하는 저장 프로시저를 객체브라우저에서 선택합니다.
3.저장 프로시저를 오른쪽 클릭하고 팝업메뉴에서 디버그를 선택합니다



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



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



[참고]트리거 및 사용자 정의 함수 디버깅
트리거나 함수를 디버깅하려면 그 트리거나 함수를 사용하는 프로시저를 만들어 디버거를 돌리면 됩니다.

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

템플릿을 사용해봅시다!

[따라 하기 - 템플릿 활용]
1.기존의 템플릿을 사용해보고 마음에 들면 대량의 작업 시 중요한 기초 템플릿이 될 수 있어 개발시간을 절약할 수 있습니다.
2.쿼리 분석기의 템플릿을 선택 후 만들고자 하는 항목 선택 후 마우스 오른쪽 클릭 팝업메뉴에서 열기 선택을 합니다.



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



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서버명
하면 됩니다.

제공 : DB포탈사이트 DBguide.net

출처명 : 한국마이크로소프트(주)

+ Recent posts