DataBase/SQL Server

[함수] 사용자 정의 함수 - 스칼라 함수/인라인 테이블 값 함수/다중문 테이블 값 함수

브라우니란 2024. 2. 15. 17:55

 

1. 사용자 정의 함수란?

매개 변수를 받아 복잡한 계산이나 쿼리문을 수행하여 결과를 반환

 

 

2. 장점

1. 모듈식 프로그래밍

  • 함수를 한 번 만들어 저장한 후에는 여러 번 호출 할 수 있다.
  • 데이터 베이스 안에 함수의 형태로 로직이 존재하게 되므로, 함수의 로직만 수정하면 모든 응용프로그램에 수정 없이 영향을 받을 수 있다.

 

2. 성능 향상

  • 실행 계획을 프로시저 캐시에 저장
  • 반복 실행 시에는 캐시를 다시 사용함으로써 쿼리문에 대한 컴파일 비용 절감

3. 네트워크 트래픽 감소

  • 복잡한 쿼리문을 네트워크를 통해 전송할 필요 없이 함수만 호출하면 된다.

 

 

3. 사용자 정의 함수의 종류

  • 스칼라 함수(Scalar Functions)
  • 인라인 테이블 값 함수(Inline Table-valued Functions)
  • 다중문 테이블 값 함수(Multi-statement Table-valued Functions)

 


4. 스칼라 함수

  • 매개 변수를 받아 로직을 처리한 후 그 결과로 값 하나만을 반환한다.
  • 하나의 값이므로 FROM 절에서 사용할 수 없다.

 

5. 인라인 테이블 값 함수

  • 함수 안에 SELECT 문 하나만 포함 할 수 있다.
  • 뷰와 비슷하지만 매개변수가 있다.
  • 매개변수를 받아 수행되는 SELECT 이 결과로 반환된다.

 

6. 다중문 테이블 값 함수

  • 함수 결과가 테이블 형태 결과 집합이다.
  • 구문이 많이 포함되어 저장 프로시저와 비슷하다.
  • 테이블 형태를 테이블 변수로 미리 지정하고 시작한다.
  • 함수 안에서 테이블 변수에 행을 추가, 변경, 삭제 할 수 있다.

'DataBase > SQL Server' 카테고리의 다른 글

[Procecure] 저장 프로시저 개발 시 유용한 설정  (0) 2024.06.03