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