Какова наилучшая практика сортировки данных с разбивкой по страницам на бизнес-уровне или уровне базы данных?

Это может быть часто задаваемый вопрос, однако пока я не могу найти убедительного ответа.

В моем проекте мне нужно выполнить разбиение на страницы для набора из около 20 000+ записей, который является объединенным результатом из нескольких таблиц, и его нужно сортировать по-разному в разных сценариях.

В настоящее время, Передо мной 2 варианта:

1, сделать это с помощью процедуры сохранения на уровне базы данных , т.е. где dl. [row_number] между @ index * @ size + 1 и @ index * @размер + @ размер . Проблема в том, что вам придется писать Store Procs для каждой сортировки отдельно.

2, сделайте это на уровне Business Logic и выполните разбиение по страницам и сортировку над результатом. (например, skip (), take ()) Но это тоже не идеально, поскольку вы можете получить 20 000 записей, но используется только 10 из них

Есть ли для этого какие-либо стандартные передовые методы? заранее спасибо

6
задан Bill the Lizard 29 November 2010 в 18:52
поделиться