我有以下SQL優化SQL MS SQL Server中,表中
SELECT Cast(Format(Sum(COALESCE(InstalledSubtotal, 0)), 'F') AS MONEY) AS TotalSoldNet,
BP.BoundProjectId AS ProjectId
FROM BoundProducts BP
WHERE (BP.IsDeleted IS NULL
OR BP.IsDeleted = 0)
GROUP BY BP.BoundProjectId
我已經在此列順序表BoundProducts的指數收益超過90%的記錄(BoundProjectId,請將isDeleted)
目前這個查詢大約需要2-3秒才能返回結果。我試圖將其降低到零秒。
截至目前,該查詢返回25077行。
請爲我提供即興查詢的任何想法。
25077行是相當大的一塊數據。我認爲你可能無法進一步調整。 – Mithrandir
如果我提到過濾條件爲BP.IsDeleted = 0而不是(BP.IsDeleted爲null或BP.IsDeleted = 0)。我可以看到有一個索引搜索,但不幸的是我不能這樣做,因爲我也有空值的記錄。 – StackUser
您仍然獲取超過90%的數據?就像我上次所說,掃描將比尋找更快:http://stackoverflow.com/questions/32971763/performance-tuning-sql/32973346#32973346 –