Sql Server 2008中Top Topuse的最佳替代方案?

Abb*_*bas 2 sql-order-by clause sql-server-2008

我正在制作一张目前包含100000条记录的表格,将来会越来越多,现在我的客户想要最新的十大记录......

使用top子句会降低性能,因为这是移动应用程序,性能是唯一的问题,因此有任何备用和最佳方式获取最新的前10名记录也可能导致性能下降

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

Bra*_*adC 5

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

SELECT TOP 10 OrderID, OrderDate, TotalPrice, Shipping, Status
FROM CustomerOrder
ORDER By OrderDate DESC
Run Code Online (Sandbox Code Playgroud)

你需要(理想情况下)索引:

(OrderDate, OrderID) INCLUDE (TotalPrice, Shipping, Status)
Run Code Online (Sandbox Code Playgroud)

  • +1这也可能*正确.给定一个正确的索引,MSSQL应该能够及时检索数据,而不管行数. (3认同)