Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- MBTI
- 코딩
- mysql
- 옥길요거트
- 개발자
- 옥길그릭요거트
- 존경하는위인
- 보드게임점수계산
- 부천공간대여
- 광명파티룸
- 해외여행
- 스컬킹
- 옥길동파티룸
- 스컬킹점수
- 웹개발
- 스페이스우일
- 구로파티룸
- 착한코딩
- 보드게임점수
- 옥길동요거트
- 서울파티룸
- 스컬킹점수계산
- 일
- 그릭요거트
- 취미
- 부천파티룸
- 휴식
- 파티룸
- 가장존경하는인물
- 옥길파티룸
Archives
- Today
- Total
SIMPLE & UNIQUE
해시조인(Hash Join) - 대용량 자료전환 시 튜닝 포인트 본문
해시조인(Hash Join)
두 테이블 중 작은 것(B)을 비트맵 해시 테이블을 메모리에 올린 후 큰 테이블(A)을 스캔 하면서
메모리에 로딩된 테이블과 비교, 매칭되는 데이터를 추출하는 방식의 조인해쉬조인으로 유도하기 위해서는 USE_HASH(B A) 힌트를 사용
SQL> select /*+ use_hash(d e) */ e.empno, e.ename, d.dname
2 from dept1 d, emp1 e
3 where e.deptno = d.deptno
4 and e.deptno = 0;성능을 위해서는 작은 테이블이 메모리에 올라가는 것이 좋은데, 이 테이블을 드라이빙 테이블(driving/outer table) 이라고 한다.
해시 테이블이 메모리에 생성되면 성능이 좋아진다.
메모리에 생성되지 않으면 내부적으로 임시 테이블이 만들어 져야 한다.
두 테이블의 크기 차이가 클수록 성능은 좋아진다
#아래에서 dept 테이블이 메모리에 로드되어 emp 테이블의 내용과 비교하면서 결과를 추출 합니다.
select /*+ ORDERED USE_HASH(e) */
e.empno,
e.ename,
d.dname,
d.loc
from dept d, emp e
where e.deptno = d.deptno
'oracle' 카테고리의 다른 글
함수(FUNCTION) (0) | 2017.07.04 |
---|---|
MyBatis <foreach>를 이용한 배열 파라미터 삽입 (2) | 2017.05.14 |
Oracle DECODE /NVL (0) | 2017.04.14 |
Oracle 대형 데이터형(BLOB, CLOB, LOB, NCLOB, BFILE) (0) | 2017.04.13 |
Oracle 변환 함수 to_char, to_date, to_number (0) | 2017.04.11 |
Comments