Stored Procedure

.·2022년 7월 21일
0

Computer Science

목록 보기
37/81

특징

  • 쿼리문을 하나의 메서드 형식으로 만들고 동작을 일괄적으로 처리한다.
  • 미리 작성된 SQL 코드를 저장해두고 언제든지 재사용할 수 있다
  • 인자를 저장 프로시저에 넘겨주어 인자값을 바탕으로 실행할 수 있다.

구문

생성

CREATE PROCEDURE procedure_name
AS
sql_statement
GO;

실행

EXEC procedure_name;

예시

  1. 인자 X

    CREATE PROCEDURE SelectAllCustomers
    AS
    SELECT * FROM Customers
    GO;
    
    EXEC SelectAllCustomers;
  1. 인자 1개

    CREATE PROCEDURE SelectAllCustomers @City nvarchar(30)
    AS
    SELECT * FROM Customers WHERE City = @City
    GO;
    
    EXEC SelectAllCustomers @City = 'London';
  1. 인자 여러개

    CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10)
    AS
    SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode
    GO;
    
    EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP';

장점

  1. 요청 하나로 여러 SQL문 실행
  2. 네트워크 소요 시간을 줄이고 성능을 개선할 수 있다.
    • 동일 쿼리를 1000번 호출하는 것보다 프로시저를 이용해 구현한다면 호출할 때 1번만 네트워크를 경유한다.
  3. 업무를 구분하여 개발할 수 있다.
    • 순수 어플리케이션 개발 조직, DBMS 개발 조직
    • 후자에서 db 관련 처리 프로시저를 만들어서 api처럼 제공하면, 어플리케이션 개발자는 저장 프로시저를 호출하여 사용하는 형식의 분업

단점

  1. 처리 성능이 낮다.
    • 문자, 숫자 연산에 사용한다면 C나 Java보다 느리다.
  2. 디버깅이 어렵다.
  3. DB 확장이 어렵다.
    • 유저 수가 많아져서 서버 수를 늘려야 할 때 DB의 수를 늘리는 것이 어렵다.
    • DB 수보다 WAS의 수를 늘리는 것이 더 효율적이다.
      • DB에는 최소의 부담만 주고 대부분의 로직은 WAS에서 처리한다.

출처

0개의 댓글