Я прочитал и следовал инструкциям здесь:
Что такое эффективный метод разбивки на страницы с очень большими наборами результатов в SQL Server 2005? и что становится ясно, я упорядочиваю по неиндексированному полю - это потому, что это сгенерированное поле из вычислений - оно не существует в базе данных.
Я использую технику row_number (), и она работает довольно хорошо. Моя проблема в том, что моя хранимая процедура выполняет довольно большие объединения на значительном количестве данных, и я упорядочиваю по результатам этих объединений. Я понимаю, что каждый раз, когда я перехожу на страницу, он должен снова вызывать весь запрос (для обеспечения правильного порядка).
Что я хотел бы (не включая весь набор результатов в код клиента и подкачку там), так это то, что, как только SQL Server получил весь набор результатов, он мог бы затем пролистать , что
Есть ли какой-нибудь встроенный способ добиться этого? - Я думал, что это могут сделать виды, но я не могу найти информацию об этом.
РЕДАКТИРОВАТЬ: индексированные представления не будут работать для меня, так как мне нужно передать параметры. У любого есть еще идеи - я думаю, что я должен использовать memcached или иметь сервис, который создает индексы в фоновом режиме. Я просто хотел бы, чтобы у SQL Server был способ получить эту таблицу и удерживать ее, пока она разбита на страницы ...