Procedure 만들기

beans·2022년 11월 26일
0

DBeaver Note

목록 보기
5/5

1 시작하기 전

1.1 Stored Procedure란

쿼리와 다르게 DB에 미리 저장되어 INSERT , UPDATE , DELETE 등이 수행될 때 특정 기능을 수행할 수 있도록 도와주는 일종의 코드

1.2 Stored Procedure의 장점

  1. 모듈식 프로그래밍 가능
    • 쿼리문으로 조작하던 테이블 데이터들을 Stored Procedure를 사용함으로써 쿼리문과 분리하여 특정 기능만을 수행하는 저장된 프로시저(Stored Procedure)로 활용할 수 있음
  2. 관리 용이
    • 모듈화로 관리가 용이해짐
    • 게시판에서 댓글이 INSERT 되면 댓글에 대한 게시글의 댓글 갯수 필드를 UPDATE하는 쿼리문을 전송하는 상황을 가정할 때 UPDATE 쿼리문을 사용하지 않고 Stored Procedure를 사용하여 이벤트로써 동작하게 하는 등 쿼리문에서 필요한 문법만을 사용할 수 있음. 중복 쿼리를 사용하거나 한 클라이언트 당 2~3번의 쿼리 요청을 1번만 쿼리하여 추가로 데이터 수정 가능
    • 위급한 상황 시 서버를 재기동하지 않고 쉽게 수정할 수 있음
  3. 보안 강화
    • 특정 테이블에 UPDATE 쿼리가 발생할 경우 다른 테이블에서 INSERT, UPDATE가 반드시 이루어져야 하는 상황을 가정할 때 Stored Procedure를 이용하여 특정 테이블의 INSERT에 대한 INSERT, UPDATE 쿼리를 사전에 작성해놓으면 DB 사용자 계정에 SELECT, UPDATE 권한만 GRANT 하여도 INSERT, UPDATE가 발생하도록 할 수 있음. 따라서 계정 별로 부여되는 권한을 최소화 할 수 있는 효과가 생기기 때문에 보안을 강화할 수 있음
    • 내부적으로 설계된 Stored Procedure에 맞게 쿼리에서 필요한 문법만을 사용하기 때문에 SQL Injection 공격으로부터 위험이 낮아짐
    • 필요한 쿼리문만을 작성하고 요청함에 따라 SQL문이 노출되었을 때 DB 구조에 대한 노출을 최소화 할 수 있음
  4. 성능 향상
    • 쿼리문은 요청할 때마다 컴파일 과정이 필요하지만 Stored Procedure는 최초 1회만 컴파일을 수행하기 때문에 쿼리문 보다 성능적으로 유리함
    • 여러 번의 쿼리를 하지 않아도 되기 때문에 DB 서버의 부담이 감소함
    • 중복 쿼리를 단일 쿼리로 작성 가능하기 때문에 DB 서버의 부담이 감소함
    • 쿼리문이 짧아져 네트워크 성능이 향상됨 (하드웨어의 발전으로 거의 효과 없음)

2 새 Procedure 만들기

좌측 Tables 더블 클릭하여 상세 화면 표출 및 Procedures 탭 선택 후 마우스 우클릭, Create New Procedure

3 프로시저 이름 설정

4 프로시저 코드 작성

5 프로시저 저장

0개의 댓글