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
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 39823
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 21805
10783 테이블 설계 시 성능 이슈 [4] 구경하는초보 2022.02.21 416
10782 MSSQL 축소오류 [3] HSQL 2022.02.19 615
10781 형태소검색이라 해야 하나요? [1] 카루카루 2022.02.11 233
10780 쿼리문 아래 [1] 아싸라비아콜롬비아 2022.02.04 156
10779 VARCHAR(CHAR) -> NVARCHAR(NCHAR) 전환에 따른 문의 사항 [2] 지니~~ 2022.01.28 256
10778 MSSQL DB 백업 및 복원 에러 문의 file 김민주5506 2022.01.18 226
10777 MSSQL 대량 insert 시에 디자인뷰 사용이 안되는게 일반적인건가요? [1] 박무적 2022.01.11 215
10776 SSMS에서 "null" 값 붙이기 안되게 하는 방법이 없나요 ? [2] 김병훈_279586 2022.01.08 304
10775 MSSQL 저장프로시저 디버깅 방법 [1] SJJ 2022.01.07 516
10774 열 검색하기? 질문입니다 [1] moredumb 2022.01.07 171
10773 몽고DB 간 통신 관련해서 궁금합니다. [1] YGDev 2022.01.07 174
10772 MSSQL Database Hide ? 기능 [1] file 서울사뢈 2022.01.06 315
10771 안녕하세요. Linked Server 관련 질문입니다. [1] 문국대 2021.12.29 174
» MSSQL 프로시져 파라미터 조건 처리 방법 [1] 다초 2021.12.28 456
10769 문의:update시 다른 필드의 변경을 체크해서 값변경시 문제가 없는지 Lovely00 2021.12.25 145
10768 왼쪽 조건에 replace를 걸어야 하는데 관련 질문입니다. [2] 카루카루 2021.12.22 219
10767 A쿠폰을 사용했던 사람이 구매한 다른 상품을 알고 싶을 때 [2] mol**** 2021.12.07 213
10766 초보 질문 세로로 출력되는 데이터를 가로로 붙이는 법 file 이하 2021.12.03 783
10765 order by 절 문의 [1] leesoek 2021.12.03 158
10764 MSSQL 과부하? 문의드립니다 [1] 한챔 2021.11.30 259





XE Login