where ~ and 절에서의 필터의 조건? 0 4 1,338

by 기그스 [2015.02.03 10:39:43]


안녕하세요.

마지막 필터에서 ARRAY SIZE로 운반될때 이해가 잘 안되는부분이있어 여쭤봅니다.

FROM TAB1, TAB2

WHERE TAB1.KEY = TAB2.KEY

AND   TAB1.FIELD1 = 'A'

AND   TAB1.FIELD2 LIKE '2014%'

AND   TAB2.FIELD3 = '5'

예로 위와같은 쿼리문이 있다고 봤을때 마지막 AND절에 TAB2.FIELD3 = '5' 부분이

TAB2.KEY + TAB2.FIELD3 으로 결합인덱스 인경우에는 같이 필터가 된다는건 이해가 되는데

그렇다면 마지막 AND TAB2.FIELD3 인덱스가 안 걸려있다면 필터를 안하고

바로 다음 INDEX를 타러간다는 말인가요?

그렇게 된다면 출력버퍼에는 언제 내보내는지도 이해가 되질 않습니다.

질문이 잘 전달됬는지 모르겠네요.

유명한 DB책이 많아 다 펴놓고 부족한 부분들은 보충하면서 공부하는데

이런 내부적인 어려움에 부딪히면 이해하는데 많이 부족합니다.

감사합니다.

 

by 신이만든짝퉁 [2015.02.03 11:08:18]

질문의 요지가 잘 전달 안됐습니다. ^^;

차라리 보시고 계신 책 내용중에서 이해가 안가는 부분을 발췌해서 보여주세요.


 


by 기그스 [2015.02.03 13:25:43]

신이만든짝퉁님 관심가져주셔서 감사합니다.

예 다음에는 애매모호할것같으면 말씀하신것처럼 해당 부분을 찍어서 질문을 하는게 더

명확할것같네요. 참고 하겠습니다,


by 마농 [2015.02.03 11:16:07]

○ 처리단계 : 1.인덱스 > 2.필터 > 3.테이블 > 4.필터 > 5.버퍼 > 6.전송
 - 처리 단계의 뒤에서 걸러낼수록 비효율이고, 앞에서 걸러낼수록 효율인거죠.
○ 조인의 경우엔 좀더 단계가 복잡해 지겠지요.
 - 조인일 때는 위의 (1,2,3,4)단계가 중첩된다고 보시면 될 듯.


가. 1 에서 5 로 바로 갈수 있는 경우가 가장 효율인거구요.
  - 인덱스에 조건항목및 조회항목이 모두 있는 경우
나. 질문에 해당하는 경우
  - (key, field3)인 경우 2개 조건을 모두 이용해 1.인덱스를 타므로 2.필터는 안하죠.
  - (key, field2, field3)인 경우 key 항목만 1.인덱스를 타고 field3은 2.필터를 하죠.
  - (key)인 경우 key 항목만 1.인덱스를 타고 field3은 4.필터를 하죠.
  - 필터와 버퍼는 무관 할 듯 합니다. 버퍼는 5,6번에만 해당될 듯


by 기그스 [2015.02.03 13:28:22]

마농님 감사합니다.

처리단계부터 상황별 가능성까지 제시해주시니 이해에 많은 도움이 됩니다.

역시 책에서 이해못했던부분들은 질문을하게되면 이런 세부적인 답변을 들을수있는 부분들이

장점이면서 정말 많은 공부가 되는것같습니다.

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입