Вы используете LINQ правильно, знаете? Вы уверены, что запрос не займет много времени? Потому что запросы LINQ выполняются при запуске итерации по нему. Не раньше.
Также обратите внимание, что db4o не использует индекс для сортировки прямо сейчас. Это означает, что для огромных наборов результатов сортировка будет медленной.
FirstOrDefault () уже занимает много времени? Там может быть две причины. Либо это занимает время, потому что запрос выполняется там. Или потому что db4o нужно время, чтобы активировал объект . Это очень сложный объект. Я думаю, что время запроса может быть проблемой, потому что вы сказали, что операция .Count () занимает свое время.
Теперь вы хотите получить только каждый 10-й объект. Ну, я считаю, что оператор .ElementAt () еще не был реализован в оптимизированной форме для db4o. Это означает, что он активирует каждый объект между ними. В последнем выпуске db4o .Skip () не должен активировать каждый промежуточный объект. Таким образом, вы можете перейти к нужной позиции и использовать там. .FirstOrDefault ().