행위

"해시 조인 HASH"의 두 판 사이의 차이

DB CAFE

1번째 줄: 1번째 줄:
 
https://programmingyoon.tistory.com/263
 
https://programmingyoon.tistory.com/263
 +
 +
<source lang=bash>
 +
해시 함수를 이용하여 조직 테이블(데이터 작은쪽)에 해시테이블을 만들고 실적집계 테이블(데이터 많은쪽)알 탐색하면서 조인.
 +
</source>
 +
 +
1. 조직 테이블(A)에서 사업부가 ‘ㅇ사업부서명’조회 후, 조인 컬럼인 조직코드를 해시 함수로 분류한 다음, 해시테이블
 +
을 생성. ('''Build Input''' , 해시 함수를 이용해 해시 테이블 구성)
 +
 +
2. 실적집계 테이블(B) 에서 집계년월이 ‘201908’를 조회 후, 조인 컬럼인 조직코드를 해시 함수로 변환 후 해시 테이블로 순차
 +
적으로 접근한다. ('''Probe Input''' 해시 함수를 통하여 해시 테이블을 탐색)
 +
 +
조회 조건 컬럼인 A.사업부, B.집계년월 컬럼의 인덱스를 사용하여 성능을 개선하고 ,
 +
조인 컬럼인 A.조직코드 = B.조직코는 인덱스가 존재하더라도 사용되지 않는다.
 +
 +
<source lang="sql">
 +
SELECT /*+ USE_HASH(B) */
 +
      A.조직명,A.조직코드,SUM(B.실적),...
 +
  FROM 조직 A
 +
    , 실적집계 B
 +
WHERE A.조직코드 = B.조직코드
 +
  AND A.사업부  = 'ㅇ사업부서명'
 +
  AND B.집계년월 = '201908'     
 +
GROUP BY A.조직명,A.조직코드
 +
</source>
 
----
 
----
 
[[파일:Usehash.jpg|섬네일|가운데|USE_NL 조인]]
 
[[파일:Usehash.jpg|섬네일|가운데|USE_NL 조인]]

2019년 8월 21일 (수) 08:47 판

thumb_up 추천메뉴 바로가기


https://programmingyoon.tistory.com/263

해시 함수를 이용하여 조직 테이블(데이터 작은쪽)에 해시테이블을 만들고 실적집계 테이블(데이터 많은쪽)알 탐색하면서 조인.

1. 조직 테이블(A)에서 사업부가 ‘ㅇ사업부서명’조회 후, 조인 컬럼인 조직코드를 해시 함수로 분류한 다음, 해시테이블 을 생성. (Build Input , 해시 함수를 이용해 해시 테이블 구성)

2. 실적집계 테이블(B) 에서 집계년월이 ‘201908’를 조회 후, 조인 컬럼인 조직코드를 해시 함수로 변환 후 해시 테이블로 순차 적으로 접근한다. (Probe Input 해시 함수를 통하여 해시 테이블을 탐색)

조회 조건 컬럼인 A.사업부, B.집계년월 컬럼의 인덱스를 사용하여 성능을 개선하고 , 조인 컬럼인 A.조직코드 = B.조직코는 인덱스가 존재하더라도 사용되지 않는다.

SELECT /*+ USE_HASH(B) */
       A.조직명,A.조직코드,SUM(B.실적),...
  FROM 조직 A
     , 실적집계 B
 WHERE A.조직코드 = B.조직코드
   AND A.사업부   = 'ㅇ사업부서명'
   AND B.집계년월 = '201908'      
 GROUP BY A.조직명,A.조직코드

USE_NL 조인