[SQL] 프로시저(Procedure)
데이터베이스시스템, SQL에서 사용하는 프로시저에 대해 알아보자.
프로시저(Procedure) 란?
- SQL Server에서 제공하는 기능이다.
- 일련의 쿼리들을 하나의 함수처럼 실행하기 위한 쿼리 집합 모음이다.
- 영구저장모듈로 절차별로 일련의 작업을 정리해 DBMS에 저장한다.
프로시저의 장점
- 네트워크 부하를 줄일 수 있다. 하나의 요청으로 여러 SQL문을 실행 할 수 있기 때문에 부하를 줄일 수 있다.
- 구문 분석 및 내부 중간 코드 변환을 미리 끝내야 하므로 시간이 줄어든다.
- 데이터베이스 트리거와 결헙하여 복잡한 규칙에 의한 데이터의 참조무결정 유지가 가능하다.
- JAVA등 호스트 언어와 SQL 쿼리문이 확실하게 분리된 소스 코드의 전망이 좋아지고, 저장프로시저의 교체에 의한 수정이 가능하기 때문에 유지보수에 좋다.
프로시저의 단점
- 디버깅이 어렵다.
- DB서버 확장이 어렵다.
- 데이터베이스 제품에 대해 설명하는 구문 규칙이 SQL/PSM 표준과의 호환성이 낮기 때문에 코드 자산으로의 재사용성이 나쁘다.
- 비즈니스 로직의 일부로 사용하는 경우 업무의 사양 변경시 외부 응용 프로그램과 함께 저장프로시저의 정의를 변경 할 필요가 있으며 이때 불필요한 수고와 변경 실수에 의한 장애가 발생 할 수 있다.
참고자료
https://siahn95.tistory.com/64
[DB][MSSQL] 저장 프로시저(Stored Procedure)란?
운영 업무를 하며 '프로시저'라는 단어를 많이 접하게 되었다. 최근까지 그것을 다룰 일이 없다가, 프로시저를 수정해야 할 요청이 들어와서 본격적으로 공부하고 글을 남긴다. SQL이 무엇인지,
siahn95.tistory.com
https://goldswan.tistory.com/51
[MSSQL]저장 프로시저 장단점, 사용 예제 정리
서론 회사에서 개발을 하면서 프로시저로 많은 비즈니스 로직을 구현했습니다. 그동안 프로시저를 사용해본 경험을 기반으로 장단점, 사용 예시에 대해 정리해볼까 합니다. 장단점 같은 경우는
goldswan.tistory.com
https://velog.io/@devjooj/Mysql-Function%EA%B3%BC-Procedure-%EC%B0%A8%EC%9D%B4
[Mysql] Procedure와 Function 차이
함수와 프로시저는 리턴값이 있고, 없다?
velog.io