데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

CREATE PROC ITEM_SELECT
(
    @ITEM_CD        NVARCHAR(20)    =    NULL,
    @ITEM_NM        NVARCHAR(30)    =    NULL,
    @ITEM_SPEC        NVARCHAR(50)    =    NULL,
    @ITEM_TYPE        NVARCHAR(20)    =    NULL,
    @EMP_NM            NVARCHAR(20)    =    NULL
)
AS
BEGIN
    SELECT    ITEM_SYS, 
            ITEM_CD, 
            ITEM_NM, 
            ITEM_SPEC
        FROM ITEM A
        LEFT JOIN TYPE B ON A.ITEM_TYPE = B.SUB_CD AND B.TYPE_CD = 'CM001'
        LEFT JOIN EMP C ON A.EMP_ID = C.EMP_ID
    WHERE (@ITEM_CD IS NULL OR (@ITEM_CD IS NOT NULL AND ITEM_CD = @ITEM_CD))
        AND (@ITEM_NM IS NULL OR (@ITEM_NM IS NOT NULL AND ITEM_NM LIKE @ITEM_NM + '%'))
        AND (@ITEM_SPEC IS NULL OR (@ITEM_SPEC IS NOT NULL AND ITEM_SPEC LIKE @ITEM_SPEC + '%'))
        AND (@ITEM_TYPE IS NULL OR (@ITEM_TYPE IS NOT NULL AND B.SUB_NM = @ITEM_TYPE))
        AND (@EMP_NM IS NULL OR (@EMP_NM IS NOT NULL AND C.EMP_NM = @EMP_NM))
    ORDER BY ITEM_CD;
END

 

쿼리를 프로시져로 만들때 조인하여 조건검색을 아래처럼 작성하고 있습니다

그런데 

1.  (@ITEM_CD IS NULL OR (@ITEM_CD IS NOT NULL AND ITEM_CD = @ITEM_CD))

2.  ITEM_CD = @ITEM_CD

 

1번처럼 작성할 경우 2번처럼 작성할때보다 속도가 나오지 않는 문제가 있습니다

기타 CASE 문 처리도 동일합니다

@ITEM_CD IS NULL, @ITEM_CD IS NOT NULL 등의 조건 처리가 원인인거 같은데요 

 

동적쿼리로 작성하자니 쿼리 확인의 어려움 있어서 될수 있으면 정적쿼리로 작성하려고 합니다

찾아보니 동적쿼리로 작성해야 인덱스를 타는거 같은데 방법이 없을까요?

고수님들의 의견 부탁드립니다

감사합니다.

No. Subject Author Date Views
10777 MSSQL 대량 insert 시에 디자인뷰 사용이 안되는게 일반적인건가요? [1] 박무적 2022.01.11 27
10776 SSMS에서 "null" 값 붙이기 안되게 하는 방법이 없나요 ? [2] 김병훈_279586 2022.01.08 33
10775 MSSQL 저장프로시저 디버깅 방법 [1] SJJ 2022.01.07 41
10774 열 검색하기? 질문입니다 [1] moredumb 2022.01.07 19
10773 몽고DB 간 통신 관련해서 궁금합니다. [1] YGDev 2022.01.07 25
10772 MSSQL Database Hide ? 기능 [1] file 서울사뢈 2022.01.06 39
10771 안녕하세요. Linked Server 관련 질문입니다. [1] 문국대 2021.12.29 40
» MSSQL 프로시져 파라미터 조건 처리 방법 [1] 다초 2021.12.28 47
10769 문의:update시 다른 필드의 변경을 체크해서 값변경시 문제가 없는지 Lovely00 2021.12.25 31
10768 왼쪽 조건에 replace를 걸어야 하는데 관련 질문입니다. [2] 카루카루 2021.12.22 43
10767 A쿠폰을 사용했던 사람이 구매한 다른 상품을 알고 싶을 때 [2] mol**** 2021.12.07 61
10766 초보 질문 세로로 출력되는 데이터를 가로로 붙이는 법 file 이하 2021.12.03 559
10765 order by 절 문의 [1] leesoek 2021.12.03 65
10764 MSSQL 과부하? 문의드립니다 [1] 한챔 2021.11.30 85
10763 안녕하세요 책으로 공부하고 있는 학생입니다. [1] file 리호 2021.11.25 80
10762 SQL SERVER OLD VERSION 구하는 방법 문의 [1] hongjinJeon 2021.11.23 70
10761 MSSQL, AlwaysOn 의 isClustered, isHadrEnabled 결과값 [2] Jeremiah 2021.11.09 75
10760 연속 3년이상 특정 등급을 받은 데이터의 카운트를 구하고싶습니다 [2] Lyx 2021.11.08 112
10759 쿼리문 질문드립니다. file One이 2021.11.04 76
10758 해당월 주차 구하고 싶어요... [1] newferari 2021.11.03 91





XE Login