20240619 WED. 스토어드 프로시저
A. stored procedure
1.개요
- 쿼리문의 집합. 특별한 동작을 처리하기 위한 용도로 사용.
- 재사용, 모듈화 개발이 됨.
- 특징 ! 프로시저는 현장에 따라서 취사 선택 사항임 !
a. 성능 향상 부분
- 몇 백 라인의 SQL 문장이 문자열로 네트워크를 경유해서 서버로 전송하면,
경우에(수 많은 유저, 수 많은 데이터) 따라서 네트워크 부하가 발생될 수 있음. -- 문제점 발생
- 이러한 문제점에 대해서 필요한 기능에 따른 SQL 문장들을 서버에 보관해서 호출하여 사용하는 형태가 되면 네트워크의 부하를 낮추는데 도움이 될 수 있음.
SQL 파생, 실행계획 등의 전처리 작업이 캐싱된 상태이므로, 재사용하게 되어 성능이 높아진다.
b. 유지보수 관리가 편리
- JAVA 쪽에서 개발을 하지 않고, 필요한 기능을 데이터 베이스 서버에 두게되므로,
기존 방법의 경우, 관리 포인트가 두 군데임 (JAVA + middle ware)
데이터베이스에 프로시저를 사용하게 되면 관리포인트가 하나가 될 수 있음.
- 스토어드 프로시저를 사용하게 되면 java 단에서 수정해야 하는 부분이 많이 줄어들게 된다.
데이터 베이스의 프로시저의 sql 만 수정하면 된다.
c. 모듈식 개발이 가능해진다
- 함수처럼 사용이 가능하기 때문에, 다른 프로시저에서도 호출해서 사용 가능하다.
d. 보안 강화
- table 에 직접 접근 대신에 스토어드 프로시저를 통해서 접근하게 된다
-> 생성 문법
create procedure 프로시저명 (in, out 사용가능)
begin
sql...
조건문...
반복문...
함수...
프로시저...
end;
- 호출 문법
call 프로시저명 (매개변수);
B. trigger , 트리거
1. 개요
- 테이블에 insert, update, delete 작업이 발생할 때 자동적으로 적용되는 객체.
- 테이블에 부착되는 이벤트 프로그램 코드
-
대표적 용도
-1. 백업용으로 사용: 삭제할 경우, 원본 데이터를 보관해야 하는 경우
-2. 모니터링 용으로 사용: 급여 테이블이 수정이 발생한 경우, 전후 데이터에 대한 이력을 확인하기 위함.
-
형식
- trigger time : 이벤트 발생 전 또는 이벤트 발생 후
- trigger event : insert, update, delete
- data 지시자 : old (event 전 데이터), new (이벤트 후 데이터)