SQL 처리 과정

Untitled

SQL Parsing

캐싱되는 영역 = 라이브러리 캐시(oracle) , 프로시저 캐시(sql server)

graph TD;

A[SQL]-->B[Syntax check];
B-->C[Semantic check];
C-->D[Access auth check];
D-->E[Cache];
E-->F[Execution plan];
E-->G[Soft parsing];
E-->H[Hard parsing];

F[Optimization];

G-->I[Execution];
H-->F-->I;
DB[DB I/O];
F-->DB;

최적화가 필요한 이유

SELECT * FROM A
JOIN B ON A.id = B.id
JOIN C ON B.id = C.id
JOIN D ON C.id = D.id
JOIN E ON D.id = E.id;

위와같은 SQL 을 날릴 시 5! 의 실행계획 + 각 단계별 Join방식 을 평가해야됨으로 굉장히 무거운 연산입니다.

해당 평가계획에 대한 캐싱을 효과적으로 이용하기 위해 이전에 지우님이 설명 해 주신대로 바인드 변수를 이용하면 좋습니다.