Background Image

FORUM

?

단축키

Prev이전 문서

Next다음 문서

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

이전글, 다음글에 대한 INDEX 가능 여부나 SQL 개선 방법이 있는지 부탁 드립니다.

 - 게시글 목록 SQL 이 상세보기 SQL 보다 더 빠른 결과가 나옵니다.



<질문 SQL : 게시글 상세 보기에서....>

SELECT * FROM (
   SELECT
    LAG(MSG_SEQ,1) OVER(ORDER BY NOTICE_YN DESC, REG_YMD DESC, MSG_GRP_NO DESC, MSG_ORD) AS PREV_SEQ,  
    LEAD(MSG_SEQ,1) OVER(ORDER BY NOTICE_YN DESC, REG_YMD DESC, MSG_GRP_NO DESC, MSG_ORD) AS NEXT_SEQ,  
    MSG_SEQ,
    BBS_TITLE,
    BBS_CONTENT,
    REG_ID,
    REG_DT
   FROM BBS_NOTICE_MSG_TB M
   WHERE BBS_CD='notice'
    AND DEL_YN='n'
    AND BBS_TITLE LIKE '%'||'시설'||'%'
)
WHERE MSG_SEQ=20842   


1번째 질의[ 0.17 초 , 검색 건수 : 1 ]


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

Query Plan:
  TABLE SCAN (M)

  rewritten query: (select lag(M.MSG_SEQ, 1, null) over (order by 10 desc , 11 desc , 12 desc , 13), lead(M.MSG_SEQ, 1, null) over (order by 10 desc , 11 desc , 12 desc , 13), M.MSG_SEQ, M.BBS_TITLE, M.REG_ID, M.REG_DT from BBS_NOTICE_MSG_TB M where M.BBS_TITLE like  ?:1  and M.DEL_YN= ?:2  and M.BBS_CD= ?:3 )

  TABLE SCAN (__t1)

  rewritten query: select [__t1].PREV_SEQ, [__t1].NEXT_SEQ, [__t1].MSG_SEQ, [__t1].BBS_TITLE, [__t1].REG_ID, [__t1].REG_DT from (select lag(M.MSG_SEQ, 1, null) over (order by 10 desc , 11 desc , 12 desc , 13) as [PREV_SEQ], lead(M.MSG_SEQ, 1, null) over (order by 10 desc , 11 desc , 12 desc , 13) as [NEXT_SEQ], M.MSG_SEQ, M.BBS_TITLE, M.REG_ID, M.REG_DT from BBS_NOTICE_MSG_TB M where M.BBS_TITLE like  ?:1  and M.DEL_YN= ?:2  and M.BBS_CD= ?:3 ) [__t1] (PREV_SEQ, NEXT_SEQ, MSG_SEQ, BBS_TITLE, REG_ID, REG_DT) where [__t1].MSG_SEQ= ?:0


Trace Statistics:
  SELECT (time: 155, fetch: 12900, ioread: 0)
    SCAN (temp time: 0, fetch: 131, ioread: 0, readrows: 354, rows: 1)
    SUBQUERY (uncorrelated)
      SELECT (time: 155, fetch: 12769, ioread: 0)
        SCAN (table: bbs_notice_msg_tb), (heap time: 83, fetch: 11821, ioread: 0, readrows: 19651, rows: 354)





============================================================================

<비교 SQL 게시글 목록>

SELECT ORDERBY_NUM() ROWNO, M.*
FROM BBS_notice_MSG_TB M
WHERE BBS_CD='notice'
 AND DEL_YN='n'
 AND BBS_TITLE LIKE '%'||'시설'||'%'
ORDER BY NOTICE_YN DESC, REG_YMD DESC, MSG_GRP_NO DESC, MSG_ORD
FOR ORDERBY_NUM() BETWEEN 1 AND 10


1번째 질의[ 0.034 초 , 검색 건수 : 10 ]


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

Query Plan:
  INDEX SCAN (M.idx_bbs_notice_msg_tb_orderby_regymd) ()
  skip order by: true

  rewritten query: select orderby_num(), M.msg_seq, M.bbs_cd, M.bbs_gcd, M.cate_cd1, M.cate_cd2, M.cate_cd3, M.msg_depth, M.msg_grp_no, M.msg_ord, M.bbs_title, M.msg_pw, M.tel_no, M.cell_no, M.email, M.addr1, M.addr2, M.zip_cd, M.spare1, M.spare2, M.spare3, M.spare4, M.spare5, M.spare6, M.spare7, M.spare8, M.spare9, M.spare10, M.view_cnt, M.notice_yn, M.notice_end_dt, M.public_yn, M.display_yn, M.display_start_dt, M.display_end_dt, M.reg_id, M.reg_dept_nm, M.reg_nm, M.reg_div, M.reg_ip, M.reg_dt, M.edit_dt, M.pin_no, M.del_yn, M.reply_mthd, M.dept_cd1, M.reply_st1, M.dept_cd2, M.reply_st2, M.dept_cd3, M.reply_st3, M.bbs_content, M.bbs_content_notag, M.bbs_wizwig_yn, M.msg_history, M.copyright_div, M.reg_ymd from BBS_notice_MSG_TB M where M.BBS_TITLE like  ?:0  and M.DEL_YN= ?:1  and M.BBS_CD= ?:2  order by 30 desc , 57 desc , 9 desc , 10 for orderby_num() between  ?:3  and  ?:4

Trace Statistics:
  SELECT (time: 14, fetch: 1723, ioread: 0)
    SCAN (index: bbs_notice_msg_tb.idx_bbs_notice_msg_tb_orderby_regymd), (btree time: 13, fetch: 1713, ioread: 0, readkeys: 8192, filteredkeys: 8192, rows: 1294) (lookup time: 8, rows: 11)


  • ?
    엄기호 2017.04.19 19:28

    안녕하세요.

    큐브리드를 이용해주셔서 감사드립니다.


    비즈니스 로직을 보면 목록을 본 다음 상세보기 이므로

    게시글 목록 쿼리문을 보면 ORDER BY절 FOR ORDERBY_NUM()을 사용 했으므로

    인라인 뷰의 쿼리문에는 ORDER BY절 FOR ORDERBY_NUM()이 빠져 있습니다.

    ORDER BY절 FOR ORDERBY_NUM()을 추가하여 사용하시면 됩니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 31
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4457
3813 도커에서 설치시 접속 문의드립니다. 1 핫산 2023.03.07 387
3812 특수문자 포함 LIKE검색 1 SEO 2023.03.06 154
3811 cubrid admin 질문 드립니다. 3 file 초코초코초 2023.03.06 119
3810 plugin방식 호출 1 file 네오랜덤 2023.03.04 141
3809 서브쿼리시 질문드립니다. 2 dev123123 2023.02.28 150
3808 Cubrid DB 의 sqoop 사용시 옵션 문의 1 망고라떼 2023.02.28 100
3807 큐브리드 통계정보 관련 문의드립니다. 1 초코초코초 2023.02.26 118
3806 cubrid 매니저 패스워드 공용으로 사용하는건가요?? 2 학아 2023.02.24 177
3805 list 합수의 결과를 varchar 컬럼에 insert 시 오류 문의 1 file 플레이어블 2023.02.24 126
3804 LOG 설정 관련 질문입니다. 1 jemin 2023.02.23 90
3803 큐브리드 unload 문의드립니다. 5 초코초코초 2023.02.22 224
3802 Mac OS 에서 Cubrid Manager 실행이 안됩니다. 1 file 엘L 2023.02.20 329
3801 쿼리 플랜 cardinality, cost 이상 1 parknnna 2023.02.16 184
3800 조건절 in 에 들어가는 순서대로 뽑고 싶습니다. 1 구르마도리 2023.02.15 92
3799 Cubrid 11.2 접속 문제. 1 엘L 2023.02.15 137
3798 cubrid 매니저 백업 자동화 추가 비활성 1 제리리 2023.02.15 125
3797 Mac OS 큐브리드 매니저 설치 문제 6 file DJ 2023.02.13 323
3796 (함수)펑션 오류 확인부탁드립니다. 1 초코초코초 2023.02.10 102
3795 필드 추가시 빨랐던 select문 느려지는 이유 3 나라디 2023.02.10 127
3794 테이블/컬럼명 자동완성 설정문의 5 file dfdfdd 2023.02.10 203
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 ... 200 Next
/ 200

Contact Cubrid

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