我正在制作一张目前包含100000条记录的表格,将来会越来越多,现在我的客户想要最新的十大记录......
使用top子句会降低性能,因为这是移动应用程序,性能是唯一的问题,因此有任何备用和最佳方式获取最新的前10名记录也可能导致性能损失< / p>
这两者是否有任何最佳表现选择..
答案 0 :(得分:5)
使用TOP子句会损害性能,因为您没有在日期字段上使用正确的索引(或者您用于识别最新的10个字段)。对于像这样的查询:
SELECT TOP 10 OrderID, OrderDate, TotalPrice, Shipping, Status
FROM CustomerOrder
ORDER By OrderDate DESC
您需要(理想情况下)索引:
(OrderDate, OrderID) INCLUDE (TotalPrice, Shipping, Status)
答案 1 :(得分:3)
我认为最好的选择是使用另一张表,其中包含最新的10条记录。
因此,当你的应用程序插入一条记录时,它必须在两个表中记录它...大一个和前十个。或者可以执行此操作的触发器。