我们有一张 CustomerNote 表,其中包含 4 列 ID、CustomerID、Note、Date
CustomerID asc 上有一个索引,Date desc
当执行以下查询时
select top 30
Date
from CustomerNote
where CustomerID in (1,5)
order by Date desc
使用了索引,但它仍在为 customerID 的 1 和 5 获取所有 CustomerNotes,然后进行排序/置顶,导致大量 CPU 使用率。
这是由于“in”子句中的多个值。我知道“in”子句的值永远不会超过 10,因此如果 sql server 迭代 10,每个 customerID 至少获取 30 个,然后进行合并、排序和排序,这将是一个更好的方法。是否有查询提示或选项来实现此目的?