동일 쿼리의 다른 실행 계획 질문입니다. 0 0 789

by 퍼품디올 [SQL Query] 동일 쿼리 다른 실행계획 partition [2020.03.02 16:07:31]


안녕하세요

동일 쿼리이고 파라메터에 따라 다른 실행계획이 풀려서 너무너무 고민입니다. ㅠㅠ

테이블은 월별로 range 파티션 되어있는 테이블입니다. 

월별로 데이터의 수는 5000만건 정도 쌓이고 있습니다.  힌트를 줘 보기도 하고 쿼리를 조금 수정해보기도 했는데 

실행계획이 변경되지 않았습니다. ㅠㅠㅠㅠ

쿼리는 아주 간단합니다. 조언바랍니다. 감사합니다. 

    select A컬럼, :yyyymmddhh_1||'0000', count(A컬럼) cnt
            from 테이블명
            where  B컬럼>= :yyyymmddhh_1||'0000'
              AND B컬럼< :yyyymmddhh_2|'0000'
             GROUP BY A컬럼;       

느리게 풀리는 실행계획

Plan                        
SELECT STATEMENT  FIRST_ROWS Cost: 39,672  Bytes: 9,785  Cardinality: 515            
  2 SORT GROUP BY NOSORT  Cost: 39,672  Bytes: 9,785  Cardinality: 515            
    1 INDEX SKIP SCAN INDEX (UNIQUE) 테이블_PK Cost: 39,672  Bytes: 252,187  Cardinality: 13,273  

빠르게 풀리는 실행계획

Plan                                
SELECT STATEMENT  FIRST_ROWS Cost: 3  Bytes: 22  Cardinality: 1                      
  4 HASH GROUP BY  Cost: 3  Bytes: 22  Cardinality: 1                      
    3 FILTER                              
      2 PARTITION RANGE ITERATOR  Cost: 2  Bytes: 22  Cardinality: 1  Partition #: 3  Partitions determined by Key Values    
        1 TABLE ACCESS FULL TABLE 테이블 Cost: 2  Bytes: 22  Cardinality: 1  Partition #: 3  Partitions determined by Key Values
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입