안녕하세요.
오늘은 프로시저에 대해 학습해보았습니다.
프로시저(Procedure)란 Persistent Storage Module 약자로
일련의 쿼리를 하나의 함수처럼 사용하기 위한 쿼리의 집합을 뜻합니다.
프로시저는 왜 사용하고 프로시저의 장단점에는 무엇이 있는지 알아보겠습니다.
프로시저의 정의
- 특정한 로직을 처리하기만 하고 결과 값을 반환하지 않는 서브 프로그램입니다.
- 데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템이 저장한 것입니다.
- 테이블에서 데이터를 추출, 조작하고 결과를 다른 테이블에 다시 저장하거나 갱신하는 처리를 할 때, 프로시저를 사용합니다.
프로시저의 장점
- 하나의 요청으로 여러 SQL문을 실행시킬 수 있습니다. (네트워크 부하를 줄일 수 있음)
- 네트워크 소요 시간을 줄여 성능을 개선할 수 있습니다.
- 여러 어플리케이션과 공유가 가능합니다. (API처럼 제공가능)
- 기능 변경이 편합니다. (특정 기능을 변경할 때 프로시저만 변경하면 됨)
- 테이블에 직접 접근해 데이터를 조작하는 대신 프로시저에만 접근 가능하도록 하여 보안을 강화할 수 있습니다.
https://devkingdom.tistory.com/323
[MSSQL] 저장 프로시저 (Stored Procedure) 란?
실무에서는 프로그램에서 만들어 놓은 SQL문을 저장해 놓고, 필요할 때마다 호출해서 사용하는 방식으로 프로그램을 만든다. 저장 프로시저 (Stroed Procedure) 저장 프로시저는 이러한 방식이 가능
devkingdom.tistory.com
프로시저의 단점
- 문자나 숫자열 연산에 사용하면 오히려 C,Java보다 느린 성능을 보일 수 있습니다.
- 프로시져가 앱의 어디에 사용되는지 확인이 어렵기 때문에 유지보수가 어렵습니다.
프로시저와 함수의 차이점
프로시저 문법
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 ;
반응형