목록Hash (2)
미스터 역마살
해싱이란? 해싱은 키값에 연산을 통해 해당 키값에 할당된 항목에 직접 접근 가능한 구조를 말하며 이러한 자료구조를 해시테이블이라고 한다. 또한 해시테이블을 이용한 탐색을 해싱이라고 한다. 해시함수? 해시테이블에 데이터를 저장할때 여러 알고리즘을 통해서 데이터의 고유한 숫자값을 만들어 인덱스로 사용하게 되는데 이 알고리즘을 구현한 메소드를 해시 함수라고 한다. 해시함수의 알고리즘은 여러가지가 있지만 가장 기본적인 것! 나머지 연산법에 대해 알아보자. 예를 들어 "a", "b", "c"의 해시코드가 각각 97, 98 ,99 라고 하고 해시테이블의 크기가 10이라고 했을 때 테이블에 저장될 인덱스는 다음과 같다. 97 % 10 = 798 % 10 = 899 % 10 = 9 즉, Hash Table의 인덱스 7..
- Hash 조인의 특징 1. Build Input의 크기가 작을때 효과적이다. ( PGA에 할당되는 Hash Area에 담길정도로 충분히 작아야 함) 2. 해시 키값으로 사용되는 컬럼에 중복값이 거의 없을때 효과적이다. ( Hash 알고리즘의 성능은 얼마나 Hash 충돌을 최소화 하느냐에 따라 달렸다.) -Hash 조인 선택 기준 1. 조인컬럼에 인덱스가 없어 비효율 적일때 2. 조인컬럼에 인덱스가 있더라도 NL조인 드라이빙 집합에서 Inner 쪽 집합의 조인 Access 양이 많아 Random Access 부하가 심할 때 3. Sort Merge 조인 하기에는 두 테이블이 너무 커 소트부하가 심할때 4. 수행빈도가 낮고 쿼리수행시간이 오래걸리는 대용향 테이블을 조인할 때 -끝-