본문 바로가기
  • 읽고보고쓰고
PROGRAMMING/Database

내가 주로 사용하는 SP 작성 방법 요약

by 체리그루브 2018. 4. 21.
728x90



  CREATE PROCEDURE ZP_프로세스명_INS

   WITH RECOMPILE

   AS

   BEGIN

       SET NOCOUNT on

       SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED


       ....


   END


ZP_프로세스명_INS

보통 SP_로 쓰는 경우가 많지만, 이경우 시스템 SP 명과 유사하여, 탐색하기가 여간 귀찮은게 아니다. 매번 Object_id > -1 할 순 없지 않을까? 하여, 아예 이름 명명을 ZP_로 시작하는 것으로 해봤다. 

뒤의 INS는 입력, LST는 목록, DEL은 삭제.


SET NOCOUNT on 

프린트를 찍거나 할 때, "(2개 행이 영향을 받음)"과 같이 실행한 행수 보여주는 게 

불필요할 때가 있다. 과감히 실행 행수는 없애고, 원하는 Print 를 보여준다.


SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

이 문서의 하일라이트! MS SQL은 Oracle 과 달라 격리 수준을 명시적으로 정해줘야 하는데,

테이블에 직접 힌트를 넣는 방식은 익히 WITH(NOLOCK) 으로 알고 있을 터.

그러나 모든 SP의 갯수가 수 천개를 육박하고, 서버마다 챙겨줘야 한다면,

각 SP 최상단에 위의 옵션을 추가하는 것만으로도 WITH(NOLOCK) 놓친 원죄로부터 자유로울 수 있다.


이상은 개발하다가 갑자기 두서없이 남기고 싶은 충동에 써 넣은 것으로,

실제로는 SP 에 따라 Transaction 처리, 에러처리, Log 처리 등 다양한 방식으로 

비즈니스 처리를 구현해 나가고 있다.



728x90

댓글