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 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 2096
10789 포인트 차감 로직 [2] 홍은혜 2022.03.07 387
10788 sql 쿼리 바인드변수관련 문의드립니다. [2] jkrh**** 2022.03.07 102
10787 간단한 sql 쿼리문 질의 [1] file 재희 2022.03.07 162
10786 MS SQL 에서 geojson 파일 IMPORT [1] 거울자아1759 2022.03.05 123
10785 동적pivot, cursor쿼리에서 조회 실패한 프로시저 쿼리 질문드립니다. (도움 부탁드립니다ㅠㅠ) [1] file 박효진4534 2022.03.04 188
10784 특정테이블이 특정 날짜 기준으로 검색속도가 너무 느립니다. [2] D-hydrogen 2022.03.03 155
10783 테이블 설계 시 성능 이슈 [4] 구경하는초보 2022.02.21 316
10782 MSSQL 축소오류 [3] HSQL 2022.02.19 322
10781 형태소검색이라 해야 하나요? [1] 카루카루 2022.02.11 134
10780 쿼리문 아래 [1] 아싸라비아콜롬비아 2022.02.04 118
10779 VARCHAR(CHAR) -> NVARCHAR(NCHAR) 전환에 따른 문의 사항 [2] 지니~~ 2022.01.28 177
10778 MSSQL DB 백업 및 복원 에러 문의 file 김민주5506 2022.01.18 156
10777 MSSQL 대량 insert 시에 디자인뷰 사용이 안되는게 일반적인건가요? [1] 박무적 2022.01.11 144
10776 SSMS에서 "null" 값 붙이기 안되게 하는 방법이 없나요 ? [2] 김병훈_279586 2022.01.08 191
10775 MSSQL 저장프로시저 디버깅 방법 [1] SJJ 2022.01.07 317
10774 열 검색하기? 질문입니다 [1] moredumb 2022.01.07 92
10773 몽고DB 간 통신 관련해서 궁금합니다. [1] YGDev 2022.01.07 100
10772 MSSQL Database Hide ? 기능 [1] file 서울사뢈 2022.01.06 209
10771 안녕하세요. Linked Server 관련 질문입니다. [1] 문국대 2021.12.29 95
» MSSQL 프로시져 파라미터 조건 처리 방법 [1] 다초 2021.12.28 291





XE Login