: 프로시저란?
: 저장 프로시저 ( Stored Procedure )
: SQL Server에서 제공하는 프로그래밍 기능
: 쿼리문을 하나의 메서드 방식으로 만들고 어떤 동작을 일괄적으로 처리하는 용도.
: 여러 개의 컬럼을 조회하고 여러 개의 테이블을 조인하고 조건까지 넣어 하나의 쿼리를 만드는데
굉장히 긴 쿼리문이 생기게 됨.
: 이러한 여러 쿼리를 사용할 때마다 긴 쿼리문을 작성한다면 불편할텐데, 이를 프로시저에 저장하고
저장된 프로시저를 호출하여 프로그래밍을 하는 것이 효율적.
: 즉, 메서드 function등에 매칭이 가능할 것 같다.
: 장점
1) 하나의 요청으로 여러 SQL문을 실행할 수 있다.
2) 네트워크 소요 시간 감소
동일쿼리 1000번, 2000번 호출보다 SP를 이용해 구현한다면 SP호출 시 한번 네트워크 경유로
소요시간을 줄이고 성능을 개선할 수 있다.
3) 개발 업무를 구분해 개발할 수 있다.
순수 애플리케이션만 개발하는 조직과 DBMS 관련 코드를 개발하는 조직이 따로 있다면,
DBMS 개발 조직은 데이터베이스 관련 처리하는 SP를 만들어 API처럼 제공하고,
애플리케이션 개발자는 SP를 호출해서 사용하는 형식으로 역할을 구분할 수 있다.
: 단점
1) 처리 성능이 낮다.
문자나 숫자 연산에 SP를 사용한다면 오히려 C나 JAVA보다 느린 성능을 보인다.
이 부분은 좀 더 복잡한 부분에 통용되는 말인가 싶다.
Oracle에서 1부터 10만까지 1씩 더해서 그 값을 출력할 경우 70ms,
Java에서 동일하게 할 경우 916ms가 나왔다.
2) 디버깅이 어렵다.
3) DB확장이 매우 힘들다.
: 사용자가 많아져 서버수를 늘려야할때, DB수를 늘리는 것이 어렶다.
: 서비스 확장을 위해 서버 수를 늘릴때에는 DB수를 늘리는 것보다. WAS의 수를 늘리는 것이
효율적이기 때문에 대부분 개발에서 DB에는 최소한의 부담만 주고,
로직은 대부분 WAS에서 처리할 수 있게함.
: 이 부분은 추후 많은 유저수를 처리하는 것에대한 지식이 생기면 다뤄보도록 하겠다.
현재는 여기까지 이해하자.
'DBMS' 카테고리의 다른 글
DB - Index (0) | 2022.03.01 |
---|---|
PL/SQL ORACLE 완전 기초부터!! - 프로시저(2) (0) | 2022.03.01 |
PL/SQL ORACLE 완전 기초부터!! - FOR, WHILE (0) | 2022.03.01 |
PL/SQL ORACLE 완전 기초부터!! - LOOP문 (0) | 2022.02.28 |
PL/SQL ORACLE 완전 기초부터!! - CASE 문 (0) | 2022.02.28 |