티스토리 뷰
HASH JOIN시 BLOOM FILTER 사용하기.
>> 패턴
-------------------------------------------------------------------------------
SELECT /*+ LEADING(T1) NO_MERGE(V1) PX_JOIN_FILTER(V1) */
T1.PRDT_ID
,V1.SALES_AMT
FROM TB_PRDT T1
,(
SELECT PRDT_ID
,SUM(TRD_AMT) AS SALES_AMT
FROM TN_TRADE
GROUP BY PRDT_ID
) V1
WHERE T1.PRDT_ID IN (1000, 2000, 3000)
AND T1.PRDT_ID = V1.PRDT
-------------------------------------------------------------------------------
BLOOM FILTER 필터에 대해서는 조동욱님이 저술하신 오라클성능고도화 책에 잘 설명되어 있음.
HASH 조인시 BLOOM FILETER를 사용하려면 위와 같은 형식의 쿼리가 되어야 함.
붉은색이 중요. 선행테이블에는 필터 조건이 있어야 하고, 후행 테이블은 GROUP BY가 되어야 함.
선행테이블의 필터 조건은 여러건이 있어야 함. 선행집합이 1건 즉 PK로써 T1.PRDT_ID = 1000 으로
조건을 준다면 BLOOM FILTER는 발생되지 않음.
* BLOOM FILTER 는 FALSE NEGATIVE(부정오류)는 발생하지 않지만 FALSE POSITIVE(긍정오류)는 발생할 수 있다.
즉 필터에 의해서 조인하기 전에 참으로 인식했는데 막상 조인해 보니 아니였다라고 하는 것이 FALSE POSITIVE 이다.
FALSE POSITIVE를 줄이는 것이 BLOOM FILTER를 사용했을 때 최대의 효과를 볼 수 있다.
- Total
- Today
- Yesterday
- 남설 팔찌
- 고체 향수
- 증권정보포털
- 빈센트 반 고흐
- 솔리드 쿨론
- 톡토기
- 매직 트랙패드2
- node.js
- Sybase IQ
- yugabyteDB
- 카카오 에드
- VARIDESK
- 브리다 정수기
- 유가바이트디비
- 오미크론
- GKRS
- 로니카 BCS
- 르세라핌
- Life Chair
- 배당급
- weka
- Pixel Pals
- 홈 오피스
- 코라나 19
- 파나소닉 비데 DL-EH10KWS
- 루미큐브 종류
- 화분벌레
- JMW 헤어드라이기기
- 별이 빚나는 밤
- 별잉 빛나는 밤
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |