SQL 쿼리에 성능 문제가 있습니다. 이 내 쿼리매개 변수에 SQL Server 성능 문제가 발생했습니다.
declare @siteId int,
@totalCount int
SELECT @totalCount = COUNT(DISTINCT pro.product_id)
FROM product AS pro
INNER JOIN product_to_category AS proCat ON pro.product_id = proCat.product_id
INNER JOIN product_to_vendor proVen ON pro.product_id = proVen.product_id
WHERE pro.site_id = @siteId
AND pro.product_type <> 3
print @totalCount
그것은 실행 6 초 정도 걸릴 것입니다 ..
내가
@totalCount int
SELECT @totalCount = COUNT(DISTINCT pro.product_id)
FROM product AS pro
INNER JOIN product_to_category AS proCat ON pro.product_id = proCat.product_id
INNER JOIN product_to_vendor proVen ON pro.product_id = proVen.product_id
WHERE pro.site_id = 28
AND pro.product_type <> 3
print @totalCount
을 다음과 같이 매개 변수를 제거하고 다시 쿼리를 실행
, 그것은 단지 2 초 정도 걸립니다.이 같은 쿼리의 성능을 향상시키는 방법은 무엇입니까? 매개 변수에 값을 할당하는 데 시간이 걸리는 이유는 무엇입니까? 모든 댓글 ....
테이블에 인덱싱이 있습니까? – Taryn
@ Tharaka, 하드 코드 된 버전을 실행 한 후 매개 변수화 된 버전의 쿼리를 즉시 다시 실행하려고 시도 했습니까? 그렇다면 얼마나 걸리나요? –
product.site_id int입니까? – gbn