Background Image

FORUM

조회 수 9774 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

인덱스가 실행이 안되는 것 같아서 요청 드려 봅니다. skip order by 가 안되네요 ㅠㅠ


<생성 index>

CREATE INDEX IDX_WORK_BOOK_TB_ORDER ON WORK_BOOK_TB(INST_CD DESC , WORKER_TEAM DESC, TASK_SPECIFIC  DESC );



<select sql>

1번 )

SELECT   *
FROM WORK_BOOK_TB
ORDER BY  INST_CD DESC , WORKER_TEAM DESC, TASK_SPECIFIC  DESC
LIMIT 20


2번 )

SELECT   *
FROM WORK_BOOK_TB USE  INDEX (IDX_WORK_BOOK_TB_ORDER)
ORDER BY  INST_CD DESC , WORKER_TEAM DESC, TASK_SPECIFIC  DESC
LIMIT 20


3번)

SELECT   *
FROM WORK_BOOK_TB
USING INDEX IDX_WORK_BOOK_TB_ORDER
ORDER BY  INST_CD DESC , WORKER_TEAM DESC, TASK_SPECIFIC  DESC
LIMIT 20


==> 뭘해도 소요 시간 2.13초




--------------------------------------------------
SHOW TRACE;
--------------------------------------------------

Query Plan:
  SORT (order by)
    TABLE SCAN (WORK_BOOK_TB)

  rewritten query: select WORK_BOOK_TB.workbook_seq, WORK_BOOK_TB.workbook_ymd, WORK_BOOK_TB.workbook_ord, WORK_BOOK_TB.worker_nm, WORK_BOOK_TB.worker_position, WORK_BOOK_TB.worker_class, WORK_BOOK_TB.worker_team, WORK_BOOK_TB.inst_cd, WORK_BOOK_TB.task_specific, WORK_BOOK_TB.task_common, WORK_BOOK_TB.task_common_specific, WORK_BOOK_TB.office_work_div, WORK_BOOK_TB.work_times, WORK_BOOK_TB.time_required, WORK_BOOK_TB.self_appraisal, WORK_BOOK_TB.add_working, WORK_BOOK_TB.reg_dt, WORK_BOOK_TB.reg_id, WORK_BOOK_TB.updt_dt, WORK_BOOK_TB.del_yn, WORK_BOOK_TB.del_dt from WORK_BOOK_TB WORK_BOOK_TB order by 8 desc , 7 desc , 9 desc  for orderby_num()<= ?:0

Trace Statistics:
  SELECT (time: 2131, fetch: 5705, ioread: 0)
    SCAN (table: work_book_tb), (heap time: 1195, fetch: 5700, ioread: 0, readrows: 313631, rows: 313631)
    ORDERBY (time: 0, topnsort: true)





  • ?
    김창휘 2017.04.18 00:06

    안녕하세요.


    27만건 테이블로 동일 유형으로 테스트를 진행했습니다.


    SELECT /*+ RECOMPILE */
        *
        FROM
         tn_mber_back
         USE INDEX (idx_tn_mber_back_01)
        ORDER BY
         unique_id DESC, mber_id desc,mber_nm desc
        LIMIT 20;


    Query Plan:
      INDEX SCAN (tn_mber_back.idx_tn_mber_back_01) ()
      skip order by: true

      rewritten query: select tn_mber_back.unique_id, tn_mber_back.mber_id, tn_mber_back.[password], tn_mber_back.mber_nm, tn_mber_back.virtl_idntfc_code, tn_mber_back.dplct_cnfirm_code, tn_mber_back.brthdy, tn_mber_back.sexdstn, tn_mber_back.telno, tn_mber_back.email, tn_mber_back.adres, tn_mber_back.pbsvnt_at, tn_mber_back.child_at, tn_mber_back.frgnr_at, tn_mber_back.email_acnt_reqst_at, tn_mber_back.drmncy_at, tn_mber_back.regist_ip, tn_mber_back.updt_ip, tn_mber_back.sbscrb_dt, tn_mber_back.updt_dt, tn_mber_back.password_updt_dt, tn_mber_back.password_extn_at, tn_mber_back.mntr_staff_group, tn_mber_back.water_at, tn_mber_back.accr, tn_mber_back.login_fail_cnt from tn_mber_back tn_mber_back using index tn_mber_back.idx_tn_mber_back_01 order by 1 desc , 2 desc , 4 desc  for orderby_num()<= ?:0

    Trace Statistics:
      SELECT (time: 0, fetch: 24, ioread: 0)
        SCAN (index: tn_mber_back.idx_tn_mber_back_01), (btree time: 0, fetch: 23, ioread: 0, readkeys: 20, filteredkeys: 20, rows: 20) (lookup time: 0, rows: 20)


    인덱스 생성 후 통계정보를 갱신해 보시고 /*+ RECOMPILE */ 옵션을 추가 후 수행해 보시길 바랍니다.


    UPDATE STATISTICS ON WORK_BOOK_TB WITH FULLSCAN;


    그리고, 해당 테이블의 구조(DDL 또는 컬럼 Layout 정보) 정보를 보내주시길 바랍니다.


    UPDATE STATISTICS ON  WORK_BOOK_TB  WITH FULLSCAN;




  • ?
    취우다 2017.04.18 00:38

    감사합니다.

    해당 내용을 적용을 해도 크게 개선이 되지 않길래 DDL 을 보내려다가 확인 했습니다.

    INDEX 필드가 NULL 허용인 경우는 INDEX가 동작하지 않는 거네요.. 실제 DB 데이터에는 NULL 값이 없지만 DDL에서 NULL 허용이 되어 있어서 skip order by 되지 않았습니다.

  • ?
    김창휘 2017.04.18 01:29

    안녕하세요.


    말씀하신대로 첫 번째 컬럼이 NULL인경우(나머지 컬럼은 상관 없음)  skip order by 기능이 안되지만 아래의 예시처럼 임의의 조건을 추가해서 강제적으로 인덱스를 사용할 수 있게 할 수 있습니다.


     SELECT /*+ RECOMPILE */
        *
        FROM
         tn_mber_back
         USE INDEX (idx_tn_mber_back_01)
        --WHERE unique_id IS NOT null  /* FILTER */
         WHERE unique_id >= ' '   /* ONLY INDEX SCAN */
        ORDER BY
         unique_id DESC, mber_id desc,mber_nm desc
        LIMIT 20;


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 142
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4481
3825 한글을 입력받아 한글을 리턴하는 CUBRID JAVA StoredProcedure 작성시 window 환경에서 리턴 값이 깨져서 출력 됨 2 두목원슝 2023.03.22 167
3824 큐브리드 DAMO(암호화)관련 버전 호환관련하여 문의드립니다. 3 초코초코초 2023.03.20 232
3823 cubrid manager 에러?? 3 11시38분 2023.03.20 229
3822 PreparedStatement.executeBatch에서 일부 데이터의 오류 시 반환 값 문의 2 새옹지마 2023.03.18 347
3821 db생성경로가 db테이블과 결과조회에 영향을 미치나요? 1 dfdfdd 2023.03.15 122
3820 SQL statement violated NOT NULL constraint 1 yoo 2023.03.15 166
3819 콤마로 split하는 기능 구현 관련 문의 5 플레이어블 2023.03.15 312
3818 insert문에서 replace 1 yoo 2023.03.15 128
3817 cubrid 파라미터 바인딩 3 DJ 2023.03.14 172
3816 /home/jenkins/workspace/cubrid_release_10.1/src/transaction/boot_cl.c, line 1138 CODE = -971 Tran = -1, EID = 1Program 'tranlist' (pid ) connected to database server 'test' on the host 'localhost' 4 jmkim 2023.03.13 198
3815 macOS CUBRID 다운로드 질문 1 bk9395 2023.03.13 198
3814 CUBRID 11.2 & CUBRID Aadmin 11.1 오류 문의 2 file 붉은구름 2023.03.08 135
3813 도커에서 설치시 접속 문의드립니다. 1 핫산 2023.03.07 413
3812 특수문자 포함 LIKE검색 1 SEO 2023.03.06 163
3811 cubrid admin 질문 드립니다. 3 file 초코초코초 2023.03.06 119
3810 plugin방식 호출 1 file 네오랜덤 2023.03.04 144
3809 서브쿼리시 질문드립니다. 2 dev123123 2023.02.28 151
3808 Cubrid DB 의 sqoop 사용시 옵션 문의 1 망고라떼 2023.02.28 100
3807 큐브리드 통계정보 관련 문의드립니다. 1 초코초코초 2023.02.26 121
3806 cubrid 매니저 패스워드 공용으로 사용하는건가요?? 2 학아 2023.02.24 184
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 ... 201 Next
/ 201

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales