본문 바로가기
카테고리 없음

프로시저란? Procedure

by cook_code 2023. 7. 3.
반응형

안녕하세요.

오늘은 프로시저에 대해 학습해보았습니다. 

프로시저(Procedure)란  Persistent Storage Module 약자로

일련의 쿼리를 하나의 함수처럼 사용하기 위한 쿼리의 집합을 뜻합니다. 

프로시저는 왜 사용하고 프로시저의 장단점에는 무엇이 있는지 알아보겠습니다. 

 

프로시저의 정의

  • 특정한 로직을 처리하기만 하고 결과 값을 반환하지 않는 서브 프로그램입니다.
  • 데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템이 저장한 것입니다.
  • 테이블에서 데이터를 추출, 조작하고 결과를 다른 테이블에 다시 저장하거나 갱신하는 처리를 할 때,  프로시저를 사용합니다.


프로시저의 장점

  1. 하나의 요청으로 여러 SQL문을 실행시킬 수 있습니다. (네트워크 부하를 줄일 수 있음)
  2. 네트워크 소요 시간을 줄여 성능을 개선할 수 있습니다.
  3. 여러 어플리케이션과 공유가 가능합니다. (API처럼 제공가능)
  4. 기능 변경이 편합니다. (특정 기능을 변경할 때 프로시저만 변경하면 됨)
  5. 테이블에 직접 접근해 데이터를 조작하는 대신 프로시저에만 접근 가능하도록 하여 보안을 강화할 수 있습니다. 

https://devkingdom.tistory.com/323

 

[MSSQL] 저장 프로시저 (Stored Procedure) 란?

실무에서는 프로그램에서 만들어 놓은 SQL문을 저장해 놓고, 필요할 때마다 호출해서 사용하는 방식으로 프로그램을 만든다. 저장 프로시저 (Stroed Procedure) 저장 프로시저는 이러한 방식이 가능

devkingdom.tistory.com

 

프로시저의 단점

  • 문자나 숫자열 연산에 사용하면 오히려 C,Java보다 느린 성능을 보일 수 있습니다.
  • 프로시져가 앱의 어디에 사용되는지 확인이 어렵기 때문에 유지보수가 어렵습니다.

 

프로시저와 함수의 차이점

https://mjn5027.tistory.com/47

 

프로시저 문법

CREATE OR REPLACE FUNCTION 함수 이름
     ( 매개변수명1 매개변수1타입,
       매개변수명2 매개변수2타입 ... )
RETURN 데이터타입
IS||AS
       변수, 상수 등 선언 ( 선언부 )
BEGIN
       실행 문장 ( 실행부 )
       RETURN 반환값    //필수
       EXCEPTION 문장   //필수아님
END ;

 

프로시저 예제 

//날짜를 입력하면 YYYY-MM-DD 형태로 바꿔주는 함수
CREATE OR REPLACE FUNCTION testDate ( date Date )
RETURN VARCHAR2
IS
       changeDate VARCHAR2 ( 20 ) ;
BEGIN 
       changeDate := NULL ;
       changeDate := TO_CHAR ( date, 'YYYY-MM-DD' ) ;
       RETURN changeDate ;
END ;

 

 

 

반응형