02 User Call VS Recursive Call
# 정의
1) User Call : OCI(Oracle Call Interface)를 통해 외부로부터 들어오는 Call
2) Recursive Call : 오라클 내부에서 발생하는 Call,
- SQL파싱과 최적화 과정에서 발생하는 Data Dictionary 조회,
- PL/SQL로 작성된 사용자 정의 함수 , Procedure , Trigger로 인한 SQL수행
# 특징
1) User Call
* User Call 발생 빈도를 결정하는 요소들
* 개발자의 기술
* 프레임워크 내에 Array processing을 지원유무
* 설계 표준 가이드
* 사용자 정의 함수/프로시저에 대한 무조건적인 제약
* 모듈이 지나치게 단위로 구성되어 SQL이 건건이 호출되는 개발환경
>> Loop 쿼리를 해소하고, 집합적 사고를 통해 One-SQL로 구현
>> Array Processing : Array 단위 Fetch, Bulk Insert / Update / Delete
>> 부분범위처리 활용
>> 효과적인 화면 페이지 처리
>> 사용자 정의함수 / 프로시저 / 트리거의 적절한 활용
2) Recursive Call
>> 바인드 변수의 적극적 사용, 하드파싱 횟수 절감을 통해 Recursive Call 감소
>> Recursive Depth를 크게 만들지 않게끔 프로시저 구성 ( 프로시저 안에 프로시저가 들어있는 횟수 : Recursive Depth )
>> Recursive Depth를 크기 만들지 않게끔 지나친 Procedure의 모듈화를 지양
>> 대용량 데이터 조회시 함수호출이 건건이 발생하지 않게끔, 함수를 부분범위 처리가 가능한 상황에서,
제한적으로 사용해야함
>> 조인 또는 스칼라 서브쿼리 형태로 변환.
'SQLP Study > Database Call' 카테고리의 다른 글
06 페이지 처리의 중요성 (0) | 2020.04.12 |
---|---|
05 Fetch Call 최소화 (0) | 2020.04.12 |
04 Array Processing 활용 (0) | 2020.04.12 |
03 데이터베이스 Call이 성능에 미치는 영향 (0) | 2020.04.12 |
01 Call 통계, 쿼리별 Parse, Execute, Fetch Call 발생 유형 (0) | 2020.04.12 |
댓글