반응형
intro
Sql 수행 중 발생, Execute Call, Fetch Call 줄이는 방안,
User call, Recursive Call 최소화 원리와 방안
01 Call 통계
Parse Call | 커서 파싱하는 과정, 실행계획 생성 및 차즌 과정 정보 |
Execute Call | 커서 실행 통계 |
Fetch Call | select문에서 실제 레코드 읽어 사용자가 요구한 결과 집합 반환 과정 DML문(insert, update, delete, merge) Fetch call 미발생 |
02 User Call vs Recursive Call
- User Call : OCI 통해 오라클 외부로 들어오는 Call
Client | WAS | DBMS | |||
service call | Usecall | Recursive Call | |||
Presentation Layer | Business Layer | Data Layer |
- DBMS 성능과 확장성 높이려면 User Call을 최소화
Loop 쿼리를 해소하고 집합적 사고를 통해 One-Sql 구현 : I/O 효율의 핵심, 동일 레코드 반복 액세스하지 않고 블록 액세스 양 최소화 |
|
Array Processing | |
부분범우처리 원리 활용 | |
효과적인 화면 페이지 처리 | |
사용자 정의 함수 / 프로시저 / 트리거 적절한 활용 |
- Recursive Call : 오라클 내부에서 발생하는 Call
- PL/SQL 프로그램에 대한 지나친 모듈화는 지양
03 데이터베이스 Call이 성능에 미치는 영향
04 Array Processing 활용
한번의 SQL 수행으로 다량의 로우를 동시에 I/U/D 수행
st.addBatch(); | |
statm1.setFetchSize(1000); | |
if(++rows%1000==0) stmt2.executeBatch(); | |
stmt2.executeBatch(); | |
05 Fetch Call 최소화
부분범위처리 원리 | |
OLTP 환경에서 부분범위처리에 의한 성능개선 원리 | |
ArraySize 조정에 의한 Fetch call감소 및 블록 I/O 감소 효과 | ArraySize 클수록 Fetch Count 횟수 줄고 블록 IO 감소 |
프로그램 언어에 서 Array 단위 Fetch기능 활용 |
06. 페이지 처리의 중요성
페이지 처리 하지 않을 때 부하 | 페이지 처리 |
다량의 Fetch Call 발생 | 화면에 필요한 만큼 Fetch Call |
대량의 결과 집합을 클라이언트로 전송하면서 발생하는 네트워크 부하 | 필요한 만금 네트워크 처리 |
대량의 데이터 블록을 읽으면서 발생하는 I/O 부하 | 최소량 IO |
AP 서버 및 웹서버 리소스 사용량 증가 | 리소스 사용량 최소화 |
07 PL/SQL 함수의 특징과 성능 부하
PL/SQL 함수의 특징 | 인터프리터 언어, 내장 함수에 비해 속도 느림 |
재귀 Call 포함하지 않은 함수의 성능 부하 | |
재귀 Call 포함하는 함수의 성능 부하 | |
함수를 필터조건으로 사용할 때 주의사항 | |
함수와 읽기 일관성 | |
함수의 올바른 사용기준 | 정해진 공유 풀 크기 내에서 소화할 수 있는 정도 유지 |
08 PL/SQL 함수 호출 부하 해소 방안
페이지 처리 또는 부분범위처리 활용 |
Decode 함수 또는 Case 문으로 변환 |
뷰 머지 방지를 통한 함수 호출 최소화 |
스칼라 서브쿼리 캐싱 효과를 이용한 함수 호출 최소화 |
Deterministic 함수의 캐싱 효과 사용 |
복잡한 함수 로직을 풀어 SQL로 구현 |
반응형
'도전기 > SQLP' 카테고리의 다른 글
Do it SQL__DO_IT_03_(based SQL Server) (0) | 2024.08.30 |
---|---|
ch06_I/O 효율화의 원리_오라클 성능 고도화 원리와 해법_I (0) | 2024.08.29 |
ch04_라이브러리 캐시 최적화[오라클 성능 고도화 원리와 해법_I] (0) | 2024.08.29 |
ch04_라이브러리 캐시 최적화_05[오라클 성능 고도화 원리와 해법_I] (0) | 2024.08.27 |
ch04_라이브러리 캐시 최적화_04[오라클 성능 고도화 원리와 해법_I] (0) | 2024.08.27 |