ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS] 저장 프로시저(Stored Procedure)의 정의와 활용
    CS 2023. 4. 27. 09:16

    1. 함수(Function)란?

    - DB 내에서 제공되는 모듈(대부분 수식을 통한 내부 계산, SQL문 사용 X)

    - 반드시 리턴값이 존재

    - 클라이언트에서 서버에 필요한 값을 요청 받은 후 Local 실행

    - SQL문 안에서 실행이 가능하다 ex) SELECT 함수명() FROM DUAL;

     

    2. 저장 프로시저(Stored Procedure)란?

    - SP(Stored Procedure)는 일련의 쿼리문을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합

    - 호출 시 DB에서 실행해서 요청한 CLIENT(혹은 미들 서버)로 돌려준다.

    - 리턴 값이 존재할수도, 존재하지 않을 수도 있다.

    - 저장 프로시저는 그 자체가 쿼리문의 집합체기 때문에 SQL문에서 사용 불가

    - SP를 최초 실행하면 최적화, 컴파일 단계를 거쳐 그 결과가 캐싱으로 저장된다.

    - 그 후 같은 SP를 호출할 경우 캐싱된 메모리를 가져와 사용하므로 SQL구문 해석 과정이 필요 없어 실행 속도가 빠르다.

     

    3. 일반 SQL문과 저장 프로시저와의 차이

    [일반적인 SQL문 실행 과정]

    - 완벽히 동일한 구문은 일반적인 SQL문도 캐싱 사용

    - 뒤의 검색 구문이 한글자라도 다르면 다른 쿼리라 인식해서 다시 최적화와 컴파일 수행

    [저장 프로시저 실행 과정]

    - 저장 프로시저의 인자로 받음

    - 1회 호출에서만 최적화 및 컴파일 수행

    - 다음 수행 시에는 메모리(캐시)를 불러와 수행

     

    4. 저장 프로시저의 장점

    - SQL 서버의 성능을 향상 시킬 수 있음

      - 한번 실행된 저장 프로시저는 재호출시 캐싱에서 불러와 사용됨

    - 유지 보수 및 재활용의 측면에서 좋음

      - 요청하는 쪽에서 직접 SQL문을 호출하는 것이 아니라 저장 프로시저의 이름과 인자만 호출하고, 직접 DB에서 SP 파일만 수정하기 때문에 서버를 재가동할 필요가 없음

    - 보안을 강화할 수 있음

     

    5. 결론

    - 일반 SQL문을 서버에서 작성해서 사용하는 것보다 DB 내에 저장 프로시저를 생성해서 서버(혹은 클라이언트)에서 호출해서 사용하면 여러 이점이 있다.

    - 한 번 실행된 프로시저는 DB 내 캐싱이 가능하여 서버 성능 향상에 도움이 된다.

    - 서버 코드의 수정 없이 쿼리 로직이 변경 가능하므로, SQL문의 쿼리 로직과 서버 로직의 이원화가 가능하다.

    - 대기업에서 많이 쓰는 기술이므로 SP의 개념을 익히면 면접에서 유리하다.

    'CS' 카테고리의 다른 글

    [CS] 공통 코드  (0) 2023.05.08
    [CS] 쓰레드에 대한 이해와 활용  (0) 2023.05.01
    [CS] 코딩의 DRY 법칙  (0) 2023.04.24
    [CS] Http통신과 Socket통신의 차이점  (0) 2023.04.19
    [CS] 메모리란?  (0) 2023.04.17
Designed by Tistory.