데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

비트맵연산자에 대해서

맨즈밤 2013.06.11 14:18 Views : 5053

실행계획을 보다가 비트맵 연산자가 떴길래 질문드립니다.  도움말을 봐도 알쏭달쏭하네요..   첨부파일로 실행계획 올렸구요.

쿼리는 아래와 같습니다.

SELECT B.S_SMSYN
  FROM SM_POS_DB.DBO.CLIENT_T A
                INNER JOIN #TMPCLIENTS B
               ON A.CREDIT_CARD_NO = B.S_BCNUM
 WHERE A.SMS_YN   <> B.S_SMSYN

 

제가 해석한 바는

1.6번라인에서 임시테이블인 #TMPCLIENTS 를 풀스캔합니다. 결과행은 217013건 . 병렬로 8개의 쓰레드로 실행되었고 , 캡쳐에는 없지만

   쓰레드별로 24000~37000 정도 ROW가  불규칙하게 분포하고 있습니다.

 

2.5번라인에서 리파티션을 거치면서 8개의 쓰레드에서 27000정도의 균일한 분포로 쓰레드별 ROW가 재분배됩니다.

 

3.여기부터가 애매한데요. 4번라인에서 비트맵연산자를 거치면서  Bitmap1005가  정의됩니다.

 

4.8번라인에서 총데이터 건수 230만건인 CLIENT_T 을 스캔하는데 막상 row수는 대략 30만건정도만 검색되어 나왔습니다. 실행계획의

  WHERE 절을 보면

       WHERE:(PROBE([Bitmap1005],[SM_POS_DB].[dbo].[CLIENT_T].[CREDIT_CARD_NO] as [A].[CREDIT_CARD_NO])))

  이렇게 있는데요. 제가 해석한 바에 따르면 쓰레드별로 스캔을 하되 빌드인풋으로 메모리에 있는 Bitmap1005  값과  CLIENT_T 의

  CREDIT_CARD_NO 값과 비교를 하는데 ,확실하게  조인대상이 아닌행만 필터링으로 분리해내는듯 합니다.

 #TMPCLIENTS  와 CLIENT_T 는 키값을 기준으로 거의 1:1이기 때문에  정확한 비교가 되었다면 217013과 근접한 값이 나왔어야 겠죠.

 쓰레드별로 35000~45000 정도 ROW 검색됩니다.

 

5.7번라인에서 리파티션을 거치면서 쓰레드당 약 38000건정도의 균일한 분포로 쓰레드별 ROW가 재분배됩니다.

 

6.3번라인에서 보이듯 대망의 해쉬조인 , 그리고 게더스트림으로  쓰레드별로 있는 값 합치기..

 

 이름이  BITMAP인것으로 보아 비트연산을 통해서 기다,아니다 판단되는게 아닌가 합니다.   실행계획보는게 어설퍼서  맘대로 해석해봤는데요.  잘못된점이나 참고삼아야할점 있으면 지적 부탁드립니다.

 

 

 

No. Subject Author Date Views
6892 TRY CATCH 문 질문... [5] 메칸더 2013.06.14 5079
6891 간단한 쿼리 같은데 안풀리네요 [2] 캔디 2013.06.14 4685
6890 SSL 공급자: 신뢰되지 않은 기관에서 인증서 체인을 발급....오류가 나옵니다. [4] 김시준 2013.06.14 13959
6889 조건절 where 안에 in 쓰지않고 서브쿼리에 in 처럼 다중 써서 sum 구하는건데 [3] 바보 2013.06.14 5259
6888 쿼리분석기 과 프로그램에서 호출한 프로시저 속도 차이 및 재생성 [4] mr-choi 2013.06.13 5701
6887 특정 조회기간에 따른 쿼리속도문제 [1] 델리스파이스 2013.06.13 6241
6886 sp_help의 결과를 받아 볼 수 있는 방법이 있습니까? [2] 김시준 2013.06.13 6565
6885 sql 2008 미러링시 미러서버에서 장애조치??? 쑤봉e 2013.06.13 4896
6884 쿼리문의 입니다. [10] 다은빈아빠 2013.06.13 4481
6883 엑셀 파을을 업로드해서 DB에 저장하는데요.. [1] 3bong 2013.06.13 9491
6882 sa 계정 비번이 저절로 바뀌는거 같아요 [1] 삐돌이 2013.06.13 5119
6881 혹시.. EDI 시스템에 대해서 설계 해 보신분 계신가요? [1] 다복이 2013.06.13 4487
6880 2012 SSMS 불편 [4] dorhi73 2013.06.12 32895
6879 Update Trigger 문의 [2] 에퀴페 2013.06.12 5311
6878 sp_rename 하면 테이블 이름외의 변경에 대해서 [1] 전념 2013.06.12 6752
6877 끝 문자열 처리 문의요 [2] afddsa 2013.06.12 4633
6876 뷰에 인덱스 생성하는데 오류발생..문의 [4] pobiblue 2013.06.12 5111
6875 버퍼풀 사용량 제한 관련 문의 드립니다. 수노 2013.06.12 4923
6874 문자열 변환 문의드립니다. [2] 무라무라 2013.06.11 9014
» 비트맵연산자에 대해서 [1] 맨즈밤 2013.06.11 5053





XE Login