스토아드 프로시져(Stored Procedure - 이하 SP)를 작성할 때
주의할 사항을 생각이 날 때마다 적을려구 한다.
1. Wrk테이블, Temp테이블에 대한 존재 여부를 반드시 체크하도록 한다.
Wrk는 워크 테이블을 말하는데 작업상 필요에 의해서 생성하는 테이블이다.
Tmp도 비슷한 기능을 한다.
이러한 테이블을 사용하는 SP의 상단에 테이블에 대한 존재여부를 체크하는
부분을 추가하면 어떤 점이 좋은가? 혹시 매번 실행할 때마다
존재여부를 체크하기 때문에 프로시져가 느려지는 것은 아닌가?
라는 판단을 할 수도 있다. 하지만 그보다 더 중요한 부분은 항상 시스템이
정확하게 움직일 수 있는가가 중요한 부분이다.
현재의 시스템에 스탠바이용 동기화 프로젝트가 필요하게 될 때 위와 같은 형태로 SP를
생성하게 되면 중심이 되는 테이블만 생성하고 나머지는 시스템이 실행되면서
자동적으로 Wrk나 Temp테이블을 생성해 준다.
개발상 필요에 의해서 생성한 Wkr나 Temp는 대체로
문서를 만들지 않게 되는데 그렇게 되면 어떤 테이블에 어디에서 사용되는지를
체크하는 시간에 전체 공수의 많은 부분을 사용하게 될 것이다.
따라서 가능하면 프로시져의 상단에 테이블의 존재여부를 체크해서
Wrk나 Temp테이블을 만들어 주도록 하는 것이 안정된 시스템 구축을 위해서
필요할 뿐만 아니라 나중에 시스템의 확장에서도 많은 도움을 준다.
2. Insert문에서 필드명을 반드시 각 필드명을 적어 주도록 한다.
대부분 개발자들이 Insert문에서 필드명을 적어주는 것을 무척 귀찮아 한다.
많은 필드명을 외우기도 힘들뿐만 아니라 타이핑을 하는 것도 귀찮고,
각 필드를 서로 맞추는 작업도 힘들다.
그래서 대부분의 개발자들이 아래와 같이 작성한다.
Insert into [ToTable]
Select * from [FromTable]
이렇게 작성을 한 후 도입을 했다.
하지만, 만약에 [ToTable]에 운영상 필요에 의해서
하나의 필드가 추가되었을 때 어떻게 할 것인가? 그러면 이렇게 작성한
모든 SP를 찾아서 전부 수정을 해 주어야 할 것이다. 그리고 필요한 SP가
어떤 것인지도 알아야 하고 등등...
개발시에는 조금 귀찮고 문제가 생겨도 괜찮을지 모르지만
도입후에 발생하는 수정에 대한 부분은 그 영향력이 가히 폭발적이다.
따라서 각 개발자들에게 이 부분만큼은 반드시 숙지시켜서 반드시 모든
필드명을 적어 주도록 해야한다.
'프로세스' 카테고리의 다른 글
Null 체크 클래스 작성 (0) | 2006.01.04 |
---|---|
Null 체크 (0) | 2006.01.04 |
확인 버튼 (0) | 2006.01.04 |