본문 바로가기
DataBase

쿼리는 빠른데 프로시져는 느린 현상 해결하기

by 따봉이 2020. 12. 1.
728x90
반응형

어플리케이션에서 DB조회 시 느린 경우가 발생했다.

 

소스에서 해당 프로시져를 찾았고 DB툴에서 그대로 실행해보니 역시나 느렸다

 

그런데 프로시져 내 쿼리만 따서 조건값 입력하고 조회했더니 

 

겁나 빠른것이다. 

 

해당 프로시져를 DROP 후 다시 생성 했더니 잘 된다. 

 

그러나!! 

 

같은 증상이 계속 발생해서 더이상 안되겠다 싶어서 폭풍 검색 시작!

 

알아낸 원인은 이렇다. 

--기존 오류 쿼리

ALTER PROCEDURE [dbo].[usp_상품조회_Get]
	  @상품코드		VARCHAR(50)
AS
BEGIN

    
    SELECT *
    FROM 상품테이블
    WHERE 상품코드 = @상품코드
    
END

 

--오류해결 수정

ALTER PROCEDURE [dbo].[usp_상품조회_Get]
	  @상품코드		VARCHAR(50)
AS
BEGIN

    DECLARE @상품코드2 VARCHAR(50)
    SET @상품코드2 = @상품코드
    
    SELECT *
    FROM 상품테이블
    WHERE 상품코드 = @상품코드2
    
END

 

기존에는 파라메터를 받아서 그대로 조건절에 사용했지만

변수를 하나 더 생성해서 

파라메터값을 새로 생성한 변수에 넘겨 받아 조건절에 넣으면

느린 증상은 발생하지 않는다. 

 

왜 그런지는 모르고 해결됐으니 됐다.

더 깊이 들어가는 건 시간낭비일 것 같다.

 

728x90
반응형

댓글