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
반응형
'DataBase' 카테고리의 다른 글
[MSSQL] 프로시져(SP)에서 반환하는 테이블유형의 데이터를 임시테이블에 담아서 사용하기 (0) | 2020.12.14 |
---|---|
[MSSQL] SELECT 절에 불필요한 데이터 없애고 가져오기, 가비지데이터 제거 , 공백제거 등 (0) | 2020.12.04 |
정보처리 자격증 필수 암기 항목 - DML, DDL, DCL, TCL 데이터베이스 명령어의 종류 (0) | 2020.11.18 |
[MSSQL] 한글/숫자/영문 글자수가 아닌 byte 단위로 문자열 자르기 (0) | 2020.11.09 |
mssql 현재접속자 (0) | 2020.11.04 |
댓글