Background Image

FORUM

답변 주신 인라인 뷰의 쿼리문에는 ORDER BY절 FOR ORDERBY_NUM() 추가 SQL이

SELECT * FROM (
   SELECT ORDERBY_NUM() ROWNO,
    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 '%'||'시설'||'%'
   ORDER BY NOTICE_YN DESC, REG_YMD DESC, MSG_GRP_NO DESC, MSG_ORD 
)
WHERE MSG_SEQ=20842  
 이렇게 변경을 하라는 건가요?

이렇게 하면 성능에는 큰 차이가 없습니다. 추가하지 않았을때와 동일



상세 보기에서 해당 게시글 + 정렬을 잡았을때  바로 위 바로 아래 글도 함께 가져 오고 싶은데 row가 1개가 아니라 3개라도 상관이 없습니다.

개선 방법이 있나요?


  • ?
    엄기호 2017.04.19 20:17

    안녕하세요.

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


    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 '%'||'시설'||'%'
       ORDER BY NOTICE_YN DESC, REG_YMD DESC, MSG_GRP_NO DESC, MSG_ORD
       FOR ORDERBY_NUM() BETWEEN ? AND ?

    )
    WHERE MSG_SEQ=20842


    예시

    1page인 경우 BETWEEN 1 AND 10

    2page인 경우 BETWEEN 11 AND 20

    3page인 경우 BETWEEN 21 AND 30


  • ?
    취우다 2017.04.19 20:31

    빠른답변 감사 합니다.

    SQL 에 WHERE MSG_SEQ=20842 처럼 해당 게시글이 몇 page인지 모르는 상황에서는 데이터를 찾을 수 없을 것 같습니다.

    (등록, 수정, 삭제가 빈번하여 맞지 않을듯 ..)

    ;


    그럼  <풀 스캔>없이 특정 PK(MSG_SEQ) 값에 대한 ORDERBY_NUM()  값을 찾을 수 있는 방법이나

    아니면 특정  ORDERBY_NUM()  값에 대한  PK(MSG_SEQ) 값을 찾을 수 있는 방법이 있을까요?

  • ?
    엄기호 2017.04.19 22:23
    값("%시설%")에 대한 것들이 등록, 수정, 삭제가 빈번하다는 것이 아니라 전체적으로 빈번하다는 말씀인것 같은데요.


    인라인 뷰에서 특정값("%시설%")에 대해 전체를 가져오면 성능저하가 발생할 수 있으므로 특정값의 일부분만 가져와서

    처리해야 합니다.

    그 값(게시판 목록에서 선택한 값) 그리고, 앞, 뒤만 가져 와야 하는 문제임으로

    이 조건 : BBS_CD='notice' AND DEL_YN='n' AND BBS_TITLE LIKE '%'||'시설'||'%' 에 맞는 것은 일단 게시판 목록을 조회하였고,

    그것들 중에 상세하게 조회하는 부분이라 몇 번째 page인지는 숙지 할 수 있을 것 같습니다.

    그러므로 ORDERBY_NUM()값에 대한 PK(MSG_SEQ)를 찾는 것은 의미가 없어 보입니다.


  1. "DATABASE 검사" 도무지 끝날 기미가 안 보입니다

    Date2011.08.02 By한종희 Views8556
    Read More
  2. "DBMS, 0, Unknown DBMS error" 요건 무슨 애러인가요?;;

    Date2011.06.02 Byeitetu Views14222
    Read More
  3. "Token length is too long" 오류에 관하여 질문 드립니다.

    Date2009.01.09 By김우람 Views21296
    Read More
  4. & 등의 특수문자등이 변환되어 저장되는 경우

    Date2012.12.28 By호랑이야옹 Views10259
    Read More
  5. ' 의 입력 방식이 궁금합니다.

    Date2009.04.10 By이석희 Views13355
    Read More
  6. (1개의 댓글은 작성자가 썼습니다.)비주얼 베이직 큐브리드 연동후 동시에 여러 테이블 보는 방법문의

    Date2012.12.21 By강남우 Views58
    Read More
  7. (Re:) 회원가입이 3명이상 안돼요...

    Date2010.07.08 By딩이 Views7586
    Read More
  8. (댓글 질문등록 했습니다.)이전글, 다음글 기능(LAG, LEAD) ORDER BY절 FOR ORDERBY_NUM() 추가해도 그대로 입니다

    Date2017.04.19 By취우다 Views5721
    Read More
  9. *variable* 에러

    Date2013.06.14 Byhwon Views11515
    Read More
  10. ++ cubrid server start: fail

    Date2013.09.13 By토네이도 Views13365
    Read More
  11. -74 오류 조치 방법

    Date2013.08.07 By덜쇠 Views7587
    Read More
  12. .NET 4.5 에서의 NHibernate 문제, .NET 4.0 에서 NHibernate + TransactionScope 활용 문제.

    Date2017.06.09 Bywebsiter Views1964
    Read More
  13. .NET DB 제어를 위한 방법.

    Date2008.11.23 By우페 Views60803
    Read More
  14. // 를 사용하고 싶습니다.

    Date2010.02.10 By죽통군 Views9529
    Read More
  15. /etc/hosts 파일 수정

    Date2014.10.13 Bychocob Views13
    Read More
  16. /etc/rc3.d/S98cubrid 화일 좀 바꿔주세요

    Date2017.01.25 By꽁꽁단무지 Views12213
    Read More
  17. 0.5 이하 반올림 함수가 어떻게 되나요?

    Date2009.10.22 Bycoolbyj Views20871
    Read More
  18. 0으로 나눌수가 없는 경우.. 처리를 위해서 디코더나 case를 사용해서 써봤는데

    Date2015.04.01 By거만고양이 Views4212
    Read More
  19. 10.1 ==> 10.2 버전 업그레이드를 준비 중인데요.

    Date2020.03.26 ByPhilip Park Views28
    Read More
  20. 10.1 또는 10.2. 버전에서는 web manager를 지원 안 하나요?

    Date2020.01.10 Byhbg Views52
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 156 Next
/ 156

Contact Cubrid

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