Лучшая альтернатива для Top Clause в Sql Server 2008? - PullRequest
2 голосов
/ 21 сентября 2011

Я работаю над таблицей, которая в настоящее время содержит 100000 записей, и в будущем будет все больше и больше, теперь мои клиенты хотят, чтобы последние 10 лучших записей ...

с использованием предложения top снижали производительность, итак как это мобильное приложение, производительность является единственной проблемой, поэтому есть ли какой-нибудь альтернативный и лучший способ для получения последних 10 лучших записей, а также порядок, по которому может произойти потеря производительности

У этих двух лучший результатальтернатива производительности ..

Ответы [ 2 ]

5 голосов
/ 21 сентября 2011

Использование предложения TOP снижает производительность только потому, что у вас нет нужного индекса в поле даты (или в любом другом поле, которое вы используете для определения последних 10). Для запроса типа:

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

Вам понадобится (в идеале) индекс для:

(OrderDate, OrderID) INCLUDE (TotalPrice, Shipping, Status)
3 голосов
/ 21 сентября 2011

Я думаю, что лучший вариант - это использовать другую таблицу, где у вас есть последние 10 записей.

Итак, когда ваше приложение вставляет запись, оно должно записывать ее в обеих таблицах ... Большая и Топ-10. Или можно сделать триггер, который выполняет эту работу.

...