Вы могли всегда просто использовать gcc через cygwin.
Вообще говоря, сервер БД всегда присоединяется быстрее, чем код приложения. Помните, что вам нужно будет сделать дополнительный запрос с круговым обходом сети для каждого соединения. Однако, если ваш первый набор результатов невелик, а ваши индексы хорошо настроены, эта модель может работать нормально.
Если вы делаете это только для повторного использования решения ORM, возможно, вы проиграете битву. Я неизменно обнаруживал, что мне нужны наборы данных только для чтения, которые могут быть созданы только с помощью SQL, поэтому теперь я использую ORM для операций CRUD для каждого объекта и обычный SQL для поиска, отчетов, агрегатов и т. Д.
Если ранги являются статическими значениями, рассмотрите возможность их кеширования в своем приложении.
Если вам нужны пользователи часто, а ранжирование редко, рассмотрите возможность отложенной загрузки рангов. (например, отдельные запросы, но второй запрос используется только изредка.)
Используйте соединение, если вам всегда будут нужны оба набора данных, и они должны быть текущими копиями базы данных.
Прототип любые возможные варианты и запустить тесты производительности.
РЕДАКТИРОВАТЬ: Дальнейшие мысли о вашем уровне сохраняемости, потому что я сам сталкиваюсь с этим. Рассмотрите возможность добавления классов, похожих на постоянство, которые обрабатывают соединения в качестве основного запроса и доступны только для чтения. Вам решать, подходит ли это вашему конкретному сценарию, но для многих приложений доступ к базе данных во многих случаях основан на соединениях, которые могут быть довольно большими и сложными. Если вы сможете обрабатывать их согласованным образом с помощью постоянных, обновляемых объектов, это может стать большой победой для вашей архитектуры в целом. Концептуально это очень похоже на представление в базе данных и запрос представления вместо написания соединения, но вы делаете все это в коде.
Это зависит от того, сколько пользователей вы ожидаете. Первый вариант определенно будет быстрее, но при разумном объеме данных разница будет незначительной.