반응형

저장 프로시저 (Stored Procedure)

프로시저란 SQL Server에서 제공하는 프로그래밍 기능입니다.

쿼리문을 마치 하나의 메서드 형식으로 만들고 어떠한 동작을 일괄적으로 처리하는 용도로 사용됩니다.

여러 개의 칼럼을 조회하고 여러 개의 테이블을 조인하고 거기에 조건까지 넣어줌으로써 하나의 쿼리를 만드는데

엄청나게 긴 쿼리문이 생기게 됩니다.

이러한 여러개의 쿼리를 사용할 때마다 긴 쿼리문을 써야 한다면 엄청나게 불편할 텐데 이를 프로시저에 저장하고

저장된 프로시저를 호출하여 프로그래밍을 하는것이 훨씬 효율적입니다.

 

 

 

저장 프로시저의 장점

저장 프로시저를 사용하게되면 여러 가지 장점들이 있습니다.

  1.  하나의 요청으로 여러 SQL문을 실행 할 수 있습니다.
  2. 네트워크 소요 시간을 줄일 수 있습니다.
    • 만약 동일한 쿼리를 1000번 2000번 호출하는 것보다 SP를 이용해서 구현한다면 SP를 호출할 때 한 번만 네트워크를 경유하기 때문에 네트워크 소요시간을 줄이고 성능을 개선할 수 있습니다.
  3. 개발 업무를 구분해 개발 할 수 있습니다.
    • 순수한 애플리케이션만 개발하는 조직과 DBMS 관련 코드를 개발하는 조직이 따로 있다면, DBMS 개발하는 조직에서는 데이터베이스 관련 처리하는 SP를 만들어 API처럼 제공하고 애플리케이션 개발자는 SP를 호출해서 사용하는 형식으로 역할을 구분하여 개발이 가능합니다.

 

저장 프로시저의 단점

저장 프로시저의 장점에 대해 알아보았다면 이제 단점에 대해서도 알아볼 필요가 있습니다.

  1. 처리 성능이 낮습니다.
    • 문자나 숫자 연산에 저장 프로시저를 사용한다면 오히려 C나 JAVA보다 느린 성능을 보여줍니다.
  2. 디버깅이 어렵습니다.
  3. DB 확장이 매우 힘듭니다.
    • 서비스 사용자가 많아져 서버수를 늘려야할 때, DB 수를 늘리는 것이 더 어렵습니다.
      • 서비스 확장을 위해 서버수를 늘릴경우 DB 수를 늘리는 것보다 WAS의 수를 늘리는 것이 더 효율적이기 때문에 대부분의 개발에서 DB에는 최소의 부담만 주고 대부분의 로직은 WAS에서 처리할 수 있게 합니다.

 

반응형

'DB' 카테고리의 다른 글

[DB] SQL Constraint란?  (0) 2020.09.02
[DB] Index의 의미와 장단점  (0) 2020.09.02
[DB] Trigger 트리거 개요 및 장단점  (0) 2020.09.01
[DB] DBMS란 무엇일까요?  (0) 2020.08.27
[DBMS] RDBMS와 DBMS의 차이점 / SQL이란?  (0) 2020.08.27

+ Recent posts