안녕하세요 SQLP공부하고 있는데요.
공부하다보니깐 Sort merge join에 대해서 아래와 같은 문장이 나오더라고요.
Sort merge join은 hash조인과는 달리 동등 조인뿐만 아니라 비동등 조인에 대해서도 조인 작업이 가능하다라는 장점이 있다.
Hash조인은 비동등조건으로 조인안걸리다는것은 알고있었는데요.
MSSQL서버에서 Sort merge조인 조건으로 hint주고 비동등 조인조건 inner,left,.. 조인 조건걸려니깐 오류가나오네요.
혹시 이런 오류가 발생하는지 알수있을까요?
--정상 NL조인 비동등 조건일경우
select top 100000 * from sort_merge as a left outer join sort_merge2 as b
on a.pkey<>b.pkey
option(LOOP join)
--오류 HASH조인 비동등 조건일경우
select top 100000 * from sort_merge as a left outer join sort_merge2 as b
on a.pkey<>b.pkey
option(HASH join)
Comment 4
-
이리
2017.08.02 12:43
-
헬로우파이썬
2017.08.03 08:49
답변감사합니다.
제가 질문을 이상하게 했군요.
혹시 머지조인조건으로 걸었을 경우, 비동등 조건이면 에러간 나는 이유를 알수있을까요?
--오류 Merge조인 비동등 조건일경우
select top 100000 * from sort_merge as a left outer join sort_merge2 as b
on a.pkey<>b.pkey
option(merge join)
-
이재학_302349
2017.08.03 11:20
DBMS마다 확인해 봐야 해요.
해봐서 안되면 안되는 것이죠. (2016버전까지는 안되네요)
양념을 약간치면 되게 할 수는 있습니다.
SQLP 질문이니 답변은 여기까지..
-
자리비움
2017.08.09 11:52
http://blog.naver.com/PostView.nhn?blogId=ioahn&logNo=90148421998&parentCategoryNo=&categoryNo=1&viewDate=&isShowPopularPosts=false&from=postView
hash join은 비동등조건이 안걸린다고 알고 계시다고 했는데 조인 조건은 비동등으로 하시고 힌트를 hash 로걸어서 에러가 나는게 아닌가요?