Вы можете предположить, что пул соединений используется в обоих ваших сценариях, так что это действительно не является фактором, определяющим эффективность.
Если вы можете получить все результаты за один вызов, это, естественно, более эффективно, чем несколько вызовов. Рассмотрим простой случай выбора 10 вещей по отдельности вместо выбора всех 10 одновременно с помощью предложения «in». Это 1 запрос, отправленный на сервер, и 1 ответ на анализ против 10 каждого. Об этом говорит Ремус.
Скорее всего, это номинально в сценариях легкого использования, но по мере (если) вы увеличиваете масштаб, болтливость может стать проблемой. Ваш пул подключений имеет предел, который может быть достигнут в определенный момент.
Я бы выбрал вариант 1, если вы возвращаете данные одного типа между вызовами.
Однако, есть также обслуживание и повторное использование. Если вы возвращаете разрозненные данные (т. Е. Извлекаете все данные, необходимые для определенного представления), я бы выбрал вариант 2 и при необходимости оптимизировал бы меньше вызовов.