У меня есть таблица, которая довольно велика и составляет около 10 000 000 строк. Мне нужно просмотреть эту таблицу из моего приложения C#. Я использую NHibernate. Я пытался использовать этот пример кода:Производительность пейджинга Nhibernate на большом столе (10 000 000 строк)
return session.CreateCriteria(typeof(T))
.SetFirstResult(startId)
.SetMaxResults(pageSize)
.List<T>();
Когда я исполняю его операция в конце концов, раз, если мой startId больше 7000000. Используемый мной параметр pageSize - 200. Я использовал этот метод на гораздо меньших таблицах, менее 1000 строк, и он работает и работает быстро.
Вопрос: на таком большом столе есть лучший способ добиться этого, используя NHibernate?
Какие rdbms? или как выглядит SQL? Может быть, попробуй бросить OrderBy там ... – dotjoe
Это MSSQL2005. Попытка заказа сейчас. – Dave
Заказ на самом деле не имел никакого значения, но я обнаружил, что изменение startId на меньшее значение позволило завершить операцию. Кажется, он задыхается с начальным значением около 7 000 000 или выше. Все, что ниже, медленное, но, по крайней мере, заканчивается. – Dave