DB - 프로시저(Procedure)

코난·2023년 11월 9일
0

CS 면접 정리

목록 보기
15/68

저장 프로시저란?

어떤 업무를 수행하기 위한 절차.
쿼리문을 마치 하나의 메서드 형식으로 만들고 어떠한 동작을 일괄적으로 처리하는 용도로 사용됨.
프로시저에 쿼리문을 저장했다가 이를 호출하여 사용하면 효율적임.
로직을 처리하기만 하고 결과값을 반환하지 않는 서브 프로그램임.
데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템이 저장한 것


(저장 프로시저는 최초 실행될 때 최적화된 상태로 컴파일이 되고 이후에 DB에 캐쉬되어 저장된다. 캐쉬에 저장되었단 말은 최적화와 컴파일 작업을 다시 하지 않는다는 이야기이므로 한 저장 프로시저가 여러 번 쓰이게 ㅗ디면 성능 향상에 도움이 됨)

저장 프로시저의 장점

  • 하나의 요청으로 여러 SQL문을 실행할 수 있음
  • 네트워크 소요 시간을 줄일 수 있음
  • 개발 업무를 구분해 개발할 수 있음
  • 기능 변경이 편리함 (특정 기능 변경시 프로시저만 변경하면 됨)
  • 여러 어플리케이션과 공유할 수 있음

저장 프로시저의 단점

  • 처리 성능이 낮음 (일반 쿼리문보다 처리 속도가 빠르다고 함)
  • 디버깅이 어려움
  • DB 확장이 매우 힘듦
  • 유지보수 어려움(어플리케이션의 어디에 사용되는지 확인 어려움)

프로시저 작성 문법

CREATE OR REPLACE PROCEDURE 프로시저 이름
     ( 매개변수명1 [ IN || OUT || INOUT ] 데이터타입,
       매개변수명2 [ IN || OUT || INOUT ] 데이터타입 ... )
IS||AS
       변수, 상수 등 선언 ( 선언부 )
BEGIN
       실행 문장 ( 실행부 )
       EXCEPTION 문장   //필수아님
END ;

프로시저 호출 문법

EXEC 프로시저 이름 ( 매개변수명 );
// 또는
CALL 프로시저 이름 ( 매개변수명 );

프로시저 VS 함수

업로드중..


참고

https://mjn5027.tistory.com/47
https://runcoding.tistory.com/31
https://siahn95.tistory.com/64
https://bongra.tistory.com/277

profile
몸은 커졌어도, 머리는 그대로... 하지만 불가능을 모르는 명탐정 현아! 진실은 언제나 하나!

0개의 댓글

관련 채용 정보