我想修復以下查詢的某些性能問題。從sql server中的大型數據集中篩選數據的性能調整
- Tbl_A擁有65萬行
- Tbl_B有兩行
我需要
SELECT COUNT(*)
FROM Tbl_A R1 WITH (NOLOCK)
INNER JOIN Tbl_B PBD
ON PBD.Indicators = CASE R1.Indicator WHEN 'Y' THEN 'B'
WHEN 'N' THEN 'D'
WHEN '1' THEN 'B'
WHEN '0' THEN 'D'
ELSE R1.Indicator
END
我已經使用&試圖Tbl_b的值來過濾Tbl_A exists代替加入,但我無法找到任何性能優勢。請協助。
可能不是性能改進,但可以改善查詢,可以將WHEN作爲'WHEN'Y'或'1'然後'B''''當'N'或'0'結合'THEN'D'' –
不,它不起作用 – vignesh
我想這是一個n:m的關係?我可以在tbl_a中多次找到相同的指示符,並在tbl_b中多次找到相同的指示符? –