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 115
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4474
3820 libncurses.so.5 관련 질문입니다. (cubrid service start 시) 1 exnis 2009.04.29 30205
3819 DB 서버 OFF 시 질문입니다. 3 이석희 2009.04.30 13003
3818 OLEDB 에서 OID 자동으로 가져오게 하는 방법? 2 서명호 2009.05.01 13374
3817 에러 코드 질문 드립니다. 1 빵돌이 2009.05.02 19976
3816 c++ builder 2006 explore 에서 큐브리드 사용법 알려주세요 2 강아지60 2009.05.02 19634
3815 ODBC 이용 SQLHSTMT 다중으로 사용하는게 불가능한가요 ? 2 ApiClasser 2009.05.04 16565
3814 [초보질문] 타유저 TABLE 생성 가능여부 및 볼륨 데이타 입력 문의 1 삽질중 2009.05.08 14046
3813 큐브리드 개발 환경 구축 문제 1 흐승욱 2009.05.08 12783
3812 [초보질문]function 변환 문의 (oracle -> cubrid) 6 삽질중 2009.05.08 22591
3811 한글에 upper함수 적용하면 검색이 안되는 이유? 2 장비맨 2009.05.11 20805
3810 java.lang.ClassNotFoundException: cubrid.jdbc.dirver.CUBRIDDriver 에러에 관한문의 4 삽질중 2009.05.12 20670
3809 안정성 관련 질문 드립니다. 2 kkckc 2009.05.12 15582
3808 [초보질문] 객체관계 테이블 set type 입력 및 조회 방법문의 2 삽질중 2009.05.13 14652
3807 MySQL의 LOAD DATA INFILE 기능은 CUBRID에 없나요? 4 공기청정기 2009.05.13 20624
3806 Unable to access system message catalog.(null) 5 공기청정기 2009.05.14 15693
3805 Unable to access system message catalog.(null) (자답) 1 공기청정기 2009.05.15 11825
3804 [초보질문] 큐브리드 매니저에서 데이타베이스 종료시 에러 1 삽질중 2009.05.16 11940
3803 [초보질문] dbcp test 중 오류발생 3 file 삽질중 2009.05.16 18406
3802 쿼리 빌더 같은 것이 있나요? 1 jennysoft 2009.05.16 13085
3801 우분투 릴리즈 설치 지원 안되나요? 3 Hoya 2009.05.19 17739
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