저장 프로시저
개념
- 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리문들의 집합
- 저장 프로시저와 함수의 차이
- 저장 프로시저: 리턴값이 없거나 많을 수도 있고 서버에서 실행되므로 속도 빠름
- 함수: 리턴값이 필수이고 클라이언트에서 실행되므로 프로시저보다 느림
작동 방식
프로시저를 만들어두면, 여러 상황에 따라 해당 쿼리문이 필요할 때 인자 값만 전달하여 쉽게 원하는 결과물 획득 가능
해당 DB에 접근 가능한 여러 애플리케이션들과 공유하여 사용 가능
생성 및 호출
CREATE OR REPLACE PROCEDURE 프로시저명(변수명1 IN 데이터타입, 변수명2 OUT 데이터타입) -- 인자 값은 필수 아님
IS
[
변수명1 데이터타입;
변수명2 데이터타입;
..
]
BEGIN
필요한 기능; -- 인자값 활용 가능
END;
EXEC 프로시저명; -- 호출
장점
- 클라이언트가 직접 SQL을 작성하지 않고, 프로시저에 매개변수만 담아 전달하면 SQL이 이미 서버에 저장되어 있으므로 클라이언트-서버 네트워크 트래픽 감소
- API처럼 여러 애플리케이션들과 공유 가능
- 여러 SQL 명령문을 하나의 프로시저로 묶어 처리할 수 있어 코드의 재사용성 향상 및 개발 시간 단축
- DB에 직접 접근하지 않아 보안성 높음
단점
- 문자 or 숫자 연산에서 C나 Java보다 성능이 느리다.
- 에러가 발생했을 때 어디서 문제인지 디버깅하는 것이 어렵다.
Q. 함수와 프로시저의 차이
A. 함수는 값을 반환하고 프로시저는 반환x
Q. 저장 프로시저의 장점
반복되는 SQL 명령문을 한 번 작성 후 재사용 가능 => 개발 시간 단축
Q. 저장 프로시저 내에서 저장 프로시저를 호출할 수 있습니까?
네. '중첩된 저장 프로시저'라고 하는데 각 DBMS의 규칙에 따라 호출 깊이나 방식에 제한이 있을 수 있으므로 주의해야 한다.
'CS STUDY > 데이터베이스' 카테고리의 다른 글
Redis (0) | 2024.03.01 |
---|---|
SQL JOIN (0) | 2024.02.15 |
키(Key)의 개념 및 종류 (0) | 2024.02.15 |