Stored Procedure
: 어떠한 동작을 일괄 처리하기 위한 용도.
쿼리문 처리를 할 때 바로 처리하지 않고 값을 받아와 프로시저 내부에서 일괄적 처리 후 결과를 내보내 주는 루틴.
# 정의
데이터베이스 카탈로그 내부에 저장되어있는 선언적 SQL문의 세그먼트.
Stored Procedure는 trigger, 다른 Stored Procedure, 그리고 Java, Python, PHP 등 응용프로그램에서 호출 될 수 있다.
# 장점
- 자주 사용되는 일반적인 쿼리를 모듈화 시켜 필요할 때 호출하면 편리하다.
- 필요한 만큼 응용해서 사용할 수 있기 때문에 SQL 운영에 편리하다.
- 응용프로그램과 데이터베이스 서버 사이에 오가는 트래픽의 양을 줄여주는데 도와준다.
왜냐하면 많은 SQL문을 보내는 대신 응용프로그램은 이름, 저장 프로시저의 매개변수만 보내면 되기 때문이다.
- 저장 프로시저는 안전하다.
데이터베이스 관리자는 기본 데이터베이스 테이블에 접근할 수 있는 권한을 부여하지 않고,
응용프로그램이 저장 프로시저에 접근할 수 있는 적절한 권한을 부여하면 된다.
# 단점
- 유지 보수 복잡성 증가.
각 기능을 담당하는 코드가 분산되어 관리하기 때문에 어플리케이션의 설치나 배포가 더 복잡해진다.
사용자가 감당할 수 있는 부분에 관하여 적절하게 사용해야 한다.
- 많은 저장 프로시저를 사용한다면 그 저장 프로시저를 사용하는 모든 연결의 메모리 사용량이 증가할 것이다.
게다가 저장 프로시저 내부의 큰 수의 논리적 연산을 많이 사용한다면, CPU 사용량 또한 증가할 것이다.
왜냐하면 데이터베이스 서버는 논리적 연산을 하기 위해 잘 만들어진 것이 아니기 때문이다.
- 저장 프로시저를 디버그 하는데 어렵다.
오직 몇개의 데이터베이스 관리 시스템들만 저장 프로시저를 디버그 하는데 허용한다.
출저 :
https://blog.duveen.me/10?category=657591
https://blog.duveen.me/11
https://seollica.tistory.com/87
'[ Programing ] > Database' 카테고리의 다른 글
MS-SQL 복원 .bacpac (0) | 2021.11.01 |
---|---|
MS-SQL 백업 .bak 외 .bacpac (0) | 2021.10.28 |
ERD Cloud (ER-Win) (0) | 2021.10.21 |
MS-SQL 서버 개체 연결. (0) | 2021.08.31 |
MS-SQL Job 스케쥴러 확인 (0) | 2021.08.26 |