아카이브

Stored Procedure ( 저장 프로시저 ) 본문

데이터베이스

Stored Procedure ( 저장 프로시저 )

주멘이 2018. 6. 9. 15:31

< Stored Procedure ( 저장 프로시저 ) >

- 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합

- 영구 저장 모듈 (Persistent Storage Module) 이라고도 불린다

- DB에 대한 작업을 정리한 절차(procedure)를 RDBMS에 저장한 쿼리의 집합

- DB 서버측에 만들어 두는 함수

※ 왜? 관리가 쉽고 유지보수가 용이하다

☞ 클라이언트 측이라면 시스템 기능 변경 후 업그레이드, 패치가 필요

☞ 서버 측이라면 해당 SP를 수정하면 모두 반영


- 장점

1) 반복적인 작업을 피할 수 있다

2) 성능 측면

- SP는 최적화되고 캐싱된다

일반 쿼리 작동 순서

구문 분석 ☞ 최적화 ☞ 컴파일 ☞ 캐시에 저장 ☞ 실행

※ SP의 경우 2회 이상 실행부터는 이전 단계 없이 캐시에 저장된 것을 바로 실행

 SP는 최초 실행 시 최적화된 상태로 컴파일 되고, DB에 캐싱되어 저장된다

  캐시에 저장되면 최적화와 컴파일 작업을 반복하지 않는다.

  하나의 SP가 여러 번 쓰일 때 성능 향상이 있다

- 네트워크 트래픽을 감소시킨다

쿼리 전체가 아닌 매개변수만을 전달하기 때문에 전송량이 작아 부하를 줄일 수 있다

SP를 사용하면 SQL문이 서버에 저장된다

SP를 사용하면 수백개의 SQL문이 필요한 일도 서버에서 SP로 처리하기 때문에, 쿼리문 자체를 전달하지 않아도 된다.

각 클라이언트는 매개변수만 전달한다

3) 보안 측면

- 사용자 별로 테이블에 접근 권한을 주지 않고, SP에  접근 권한을 줌으로써 보안을 강화할 수 있다


- 단점

1) 데이터베이스 제품에 대해 설명하는 구문 규칙이 SQL / PSM 표준과의 호환성이 낮기 때문에

   코드 자산으로서의 재사용성이 나쁘다

2) 비즈니스 로직의 일부로 사용하는경우 업무의 사양 변경 시 외부 응용 프로그램과 함께 SP의 정의를 변경할      필요가 있다.



출처

http://genesis8.tistory.com/183

https://ko.wikipedia.org/wiki/%EC%A0%80%EC%9E%A5_%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80

http://kdmsong.tistory.com/entry/SQL-Stored-Procedure

http://huistorage.tistory.com/47 

'데이터베이스' 카테고리의 다른 글

DDL, DML, DCL  (0) 2018.06.18
Clustered Index VS Non-Clustered Index  (0) 2018.06.09
무결성(Integrity)  (0) 2018.06.09
DBMS  (0) 2018.06.06
TRIGGER  (0) 2018.06.06