테마
상품팀의 「상품별 누적 판매」는 2년 치 판매상품을 상품마다 묶어 상품명과 분류, 판매 줄 수, 수량, 금액을 낸다. 상품 관리 화면 첫 페이지에 붙어 있어 하루 3천 번쯤 호출된다. 실행계획은 해시 조인이고 Buffers도 두 테이블을 한 번씩 읽은 만큼이다. 그런데 AWR의 CPU 상위에 이 SQL이 올라 있다. 오과장은 "블록을 더 줄일 데가 없으면 그대로 둬야 하나"라고 묻는다.
CF01 상품: 109행 · 5블록 · CF01_PK (ITM_NO) · 판매상품 88 · 추가상품 1 · 원재료 20CF11 판매상품: 1,096,708행 · 8,204블록 · CF11_PK (SLE_NO, ITM_NO) · 판매 기록이 있는 상품은 88개CPU used by this session의 한 번 평균SELECT p.ITM_NO, p.ITM_NM, p.ITM_CL_CD,
COUNT(*) AS sle_lines, SUM(i.SLE_QTY) AS sle_qty,
SUM(i.SLE_QTY * i.SLE_UPRC) AS sle_amt
FROM CF01 p, CF11 i
WHERE i.ITM_NO = p.ITM_NO
GROUP BY p.ITM_NO, p.ITM_NM, p.ITM_CL_CD
-------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Used-Mem |
-------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | 88 |00:00:00.41 | 8209 | |
| 1 | HASH GROUP BY | | 1 | 109 | 88 |00:00:00.41 | 8209 | 1269K (0)|
|* 2 | HASH JOIN | | 1 | 1096K| 1096K|00:00:00.29 | 8209 | 1321K (0)|
| 3 | TABLE ACCESS FULL| CF01 | 1 | 109 | 109 |00:00:00.01 | 5 | |
| 4 | TABLE ACCESS FULL| CF11 | 1 | 1096K| 1096K|00:00:00.06 | 8204 | |
-------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("I"."ITM_NO"="P"."ITM_NO")
[한 번 실행] CPU used by this session 39 cs
A-Rows로 이 SQL이 해시 조인에서 몇 번 짝을 맞춰 보는지 설명하고, Buffers가 작은데 CPU가 드는 이유를 서술하시오.