비트맵연산자에 대해서

맨즈밤 2013.06.11 14:18 Views : 5064

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

쿼리는 아래와 같습니다.

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
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 496
6890 SSL 공급자: 신뢰되지 않은 기관에서 인증서 체인을 발급....오류가 나옵니다. [4] 김시준 2013.06.14 14158
6889 조건절 where 안에 in 쓰지않고 서브쿼리에 in 처럼 다중 써서 sum 구하는건데 [3] 바보 2013.06.14 5271
6888 쿼리분석기 과 프로그램에서 호출한 프로시저 속도 차이 및 재생성 [4] mr-choi 2013.06.13 5743
6887 특정 조회기간에 따른 쿼리속도문제 [1] 델리스파이스 2013.06.13 6272
6886 sp_help의 결과를 받아 볼 수 있는 방법이 있습니까? [2] 김시준 2013.06.13 6576
6885 sql 2008 미러링시 미러서버에서 장애조치??? 쑤봉e 2013.06.13 4903
6884 쿼리문의 입니다. [10] 다은빈아빠 2013.06.13 4486
6883 엑셀 파을을 업로드해서 DB에 저장하는데요.. [1] 3bong 2013.06.13 9499
6882 sa 계정 비번이 저절로 바뀌는거 같아요 [1] 삐돌이 2013.06.13 5125
6881 혹시.. EDI 시스템에 대해서 설계 해 보신분 계신가요? [1] 다복이 2013.06.13 4491
6880 2012 SSMS 불편 [4] dorhi73 2013.06.12 32906
6879 Update Trigger 문의 [2] 에퀴페 2013.06.12 5318
6878 sp_rename 하면 테이블 이름외의 변경에 대해서 [1] 전념 2013.06.12 6762
6877 끝 문자열 처리 문의요 [2] afddsa 2013.06.12 4640
6876 뷰에 인덱스 생성하는데 오류발생..문의 [4] pobiblue 2013.06.12 5119
6875 버퍼풀 사용량 제한 관련 문의 드립니다. 수노 2013.06.12 4931
6874 문자열 변환 문의드립니다. [2] 무라무라 2013.06.11 9024
» 비트맵연산자에 대해서 [1] 맨즈밤 2013.06.11 5064
6872 SQL 질문인데요.. [3] 줄리 2013.06.11 32636
6871 MS SQL Uninstall 관련 질문드립니다. [3] 트리플 2013.06.11 35184





XE Login