안녕하세요. join에 대해 궁금해서 적습니다.
쿼리를 짤때 join은 inner , left, right 3개의 조인을 많이 사용합니다.
기존에 inner로 짠쿼리들이 속도가 너무 나오지 않아 튜닝하고자 합니다.
몇년전에 hash join으로 글씨 바꿨을때 조회가 되었던거 같은데.
지금은 변경해서 해보니 잘 되지가 않네요.
혹시 hash join 쿼리 사용방법 아시는분 적어주시면 감사하겠습니다.
좋은 점심 되세요.
INNER JOIN, OUTER JOIN은 논리 연산자이고
HASH, MERGE, NL등은 물리 연산자입니다.
무슨말인고 하니
쿼리를 만들때는 출력할 데이터의 속성에 따라 INNER나 OUTER를 선택해서 만들게 되고
이게 실행되는 시점에 SQL 엔진이 HASH로 JOIN을 할지 MERGE나 NL로 조인을 할지를 결정하는 것이죠.
강제로 HASH조인으로 실행되게도 할 수는 있는데 힌트를 주는것이 그 방법입니다.
방법은
INNER HASH JOIN
INNER MERGE JOIN
INNER LOOP JOIN 이렇게 실제로 수행될 물리 연산자를 지정하는 것입니다.
HASH 조인으로 강제 수행해서 속도가 빨라질 수도 있겠지만
그 전에 적절한 인덱스 튜닝이 이루어져야 할것 같습니다.