2

我正在处理一个当前包含 100000 条记录的表,并且将来会越来越多,现在我的客户想要最新的 TOP 10 记录...

使用 top 子句会降低性能,因为这是移动应用程序,所以性能是唯一的问题,因此是否有任何替代和最佳方式来获取最新的前 10 名记录,而且排序可能会导致性能损失

这两个有没有最好的性能选择..

4

2 回答 2

6

使用 TOP 子句只会损害性能,因为您在日期字段(或您用来识别 10 个最新日期的任何字段)上没有正确的索引。对于像这样的查询:

SELECT TOP 10 OrderID, OrderDate, TotalPrice, Shipping, Status
FROM CustomerOrder
ORDER By OrderDate DESC

您将需要(理想情况下)以下索引:

(OrderDate, OrderID) INCLUDE (TotalPrice, Shipping, Status)
于 2011-09-20T20:31:32.963 回答
3

我认为最好的选择是使用另一个有最新 10 条记录的表。

因此,当您的应用程序插入一条记录时,它必须在两个表中都记录它……大的一个和前 10 的一个。或者可以做一个触发器来完成这项工作。

于 2011-09-20T20:24:54.837 回答