IT/SQL

[SQL] 프로시저 vs 함수

올빼밋. 2022. 6. 14. 14:18
728x90

요약

프로시저 함수
특정 작업 수행 특정 계산 수행
리턴값 유동적 리턴값 반드시
리턴값 여러개 리턴값 하나
서버(DB)단에 기술 화면(client)단에 기술
수식 내에 사용 불가 수식 내 사용 가능
단독 문장 구성 가능 단독 문장 구성 불가능

 

프로시저 Procedure

  • 데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템에 저장한 것
  • 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
  • 특정 작업을 위한 쿼리들의 블록
  • 장점
    • 하나의 요청으로 여러 SQL문을 실행시킬 수 있다 (네트워크 부하 줄임)
    • 네트워크 소요시간을 줄여 성능개선
    • 여러 어플리케이션과 공유 가능 (API처럼 공유 가능) 
    • 기능 변경이 편함 (특정 기능을 변경할 시, 프로시저만 변경하면 된다.)
  • 단점
    • 문자나 숫자열 연산에 사용하면 오히려 C, Java보다 느린 성능을 보일 수 있다.
    • 유지보수가 어렵다. (프로시저가 앱의 어디에 사용되는지 확인이 어려움)

함수 Function

  • 데이터베이스에서 함수는 일반적인 프로그래밍 함수와  동일
  • 매개변수를 받아 특정 계산(작업)을 수행하고 결과를 반환하는 구조
  • 특정 동작을 수행하는 코드 부분을 의미
  • 특정값(매개변수)을 입력받아 여러 쿼리문을 작업한 뒤 반환하는 기능을 의미

 

프로시저와 함수의 차이

  프로시저 함수
의미 보통 단독으로 실행해야할 작업을 위임받았을때 사용 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합
함수가 여러 작업을 위한 기능이라면, 프로시저는 작업을 정리한 절차
매개변수 매개변수를 입력, 출력, 입출력 형식으로 받을 수 있음 매개변수를 입력 형식으로만 받을 수 있음
반환값 반환값을 가질 수 도 있고, 가지지 않을 수 도 있음 반드시 반환값을 가져야함
쿼리문 내에 실행 가능 SELECT, WHERE 문에서 사용불가 SELECT, WHERE 문에서 사용가능
처리장소 서버 클라이언트[화면]

 

728x90