Является ли проверка количества строк перед извлечением их более эффективной, чем прямая загрузка всех данных в спящем режиме? - PullRequest
1 голос
/ 16 июня 2010

у меня ниже сценарий

  1. Получено как минимальное количество строк, необходимое для транзакции.
  2. Выполните запрос select count(*), чтобы узнать количество строк, удовлетворяющих критериям.
  3. если результат шага 2 больше или равен n, продолжить или выбросить исключение.
  4. Извлечение реальных объектов по лимиту n в запросе гибернации.
  5. выполнить логику и сохранить объекты.

Является ли приведенное выше более эффективным или непосредственное извлечение объектов и проверка размера результирующего набора будет более эффективной?

Мне не нужны данные, если нет хотя бы n строк, удовлетворяющих критериям?

P.S .: Еще лучше, если я установлю как MinSize () похожий на MaxSize ()?

1 Ответ

1 голос
/ 16 июня 2010

Является ли приведенное выше более эффективным или непосредственное извлечение объектов и проверка размера результирующего набора будет более эффективной?

Я бы сказал, что это зависит от вероятности меньше, чем n результатов даже:

  • Если это событие очень вероятно, то выполнение count первым будет более эффективным.
  • Если это событие исключительное, то выборка объектов напрямую будет более эффективной.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...