만약 여러 개의 컬럼을 조회하거나, 여러 개의 테이블을 조회하려 할 때
이를 하나의 쿼리문으로 만들려고 하면 복잡도가 올라가고 쿼리문이 길어진다.
이렇게 여러 개의 쿼리를 사용할 떄 긴 쿼리문을 써 불편하지 않기 위해
프로시저에 저장해 호출한다
하나의 요청에 여러 SQL문을 실행시킬 수 있어 서버 부화를 줄일 수 있다
네트워크 소요 시간을 줄여 성능을 개선할 수 있다
3 API 처럼 여러 어플리케이션과 공유가 가능하다
4 특정 기능 변경시 프로시저만 변경하면 되기에 기능 변경이 편하다
문자나 숫자열 연산에 사용하면 C. JAVA 보다 성능이 느릴 수 있다
프로시저가 앱의 어디에 사용되는지 확인이 어려워 유지보수가 어렵다
프로시저는 함수와 비슷하다
하나의 특정 기능 작업을 수행하기 위한 코드의 집합, 보통의 로직을 도와주는 역할이다
즉 함수가 여러 작업을 위한 기능이라면 프로시저는 작업을 정리한 절차인 것이다.
| 프로시저 | 함수 | |
|---|---|---|
| 1. | 특정 작업을 수행 | 특정한 계산을 수행 |
| 2. | 리턴값을 가질 수도 있고 안가질 수도 있다 | 리턴값이 반드시 필요하다 |
| 3. | 리턴값을 여려개 가질 수 있다 | 오직 하나의 리턴 값만 가진다 |
| 4. | 서버(DB)에서 사용하는 기술이다 | 화면(Client)에서 사용하는 기술이다 |
| 5. | 수식 내에서 사용이 불가하다 | 수식 내에서만 사용이 가능하다 |
| 6. | 단독으로 문장 구성이 가능하다 | 단독으로 문장 구성이 불가능하다 |
프로시저는 주로 데이터베이스의 작업을 수행하고 결과를 변경하거나 처리하기 위해 사용된다
반면 함수는 값을 계산하고 반환하기 위해 사용된다
함수는 프로시저를 포함하고 있는 개념으로 이러한 프로시저를 포함한 함수들이 여러새 모여 하나의 프로그램을 구성하는 것을 절차지향적 프로그래밍이라 한다.