我想修复以下查询的某些性能问题。从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中多次找到相同的指示符? –