DB_Study/Procedure

[DB] 저장 프로시저(Stored Procedure)

LeeDaniel 2024. 12. 11. 17:49
[ 저장 프로시저(Stored Procedure) ]
저장 프로시저 또는 스토어드 프로시저(stored procedure)는
일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한
쿼리의 집합이다.
데이터 베이스에 대한 일련의 작업을 정리한 절차를
관계형 데이터베이스 관리 시스템에 저장한(지속성) 것으로
영구저장모듈(Persistent Storage Module)이라고도 불린다.

[ 개요 ]
데이터베이스 언어 표준 SQL에서는 SQL / PSM기준으로 책정되어 있다.
벤더(제조사) 각사 모두 정적, 동적 SQL에 커서 처리 및
체어 구문, 예외 처리 등을 포함한 사양의 확장 언어로
절차를 설명할 수 있는 DBMS를 제공하는 경우가 많다.
또한 C언어로 작성된 컴파일한 외부 모듈(공유 라이브러리) 및
Java클래스 라이브러리에서 함수나 클래스 메소드를 호출하는 것으로 실현하는
'외부 프로시저' 기능을 구현하는 것도 있다.

[ 장점 ]
1. 하나의 요청으로 여러SQL문을 실행할 수 있다.
   (네트워크에 대한 부하를 줄일 수 있다.)

2. 미리 구문 분석 및 내부 중간 코드로 변환을 끝내야 하므로 처리시간이 줄어든다.
3. 데이터베이스 트리거와 결합하여 복잡한 규칙에 의한 데이터의 참조무결성 유지가 가능하게 된다.
    간단히 말하면 응용프로그램 측 로직을 가지지 않고도 데이터베이스의 데이터 앞뒤가 맞게 될 수 있다.
4. Java 등의 호스트 언어와 SQL문장이 확실하게 분리된 소스코드의 전망이 좋아지는것,
    또한 웹사이트 등 운용 중에도 저장프로시저의 교체에 의한 수정이 가능하기 때문에 보수성이 뛰어나다.

[ 단점 ]
1. 데이터베이스 제품에 대해 설명하는 구문 규칙이
    SQL / PSM 표준과의 호환성이 낮기 때문에
    코드 자산으로서의 재사용성이 나쁘다

2. 비즈니스 로직의 일부로 사용하는 경우 업무의 사양 변경시
    외부 응용프로그램과 함께 저장프로시저의 정의를 변경할 필요가 있다.
    이때 불필요한 수고와 변경 실수에 의한 장애를 발생시킬 가능성이 있다.

이 글은 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0에 따라
공개된 위키백과 문서 저장프로시저의 자료를 사용
728x90
반응형