Звучит так, будто вы связаны скоростью IO. Когда вы запускаете эту вещь на сервере p1, максимальный ли процессор? Если нет, то, вероятно, узким местом являются сеть или диски БД. Вы можете проверить пропускную способность диска и сети на сервере БД, чтобы увидеть, достигли ли они определенного предела.
Если диск является узким местом, они пытаются сузить строки вашей таблицы, каждая строка в вашей таблице должна быть как можно меньше байтов. Убедитесь, что запрашиваемая таблица содержит только те столбцы, которые вам действительно нужны, и что они максимально сжаты (т. Е. Сильно нормализованы целочисленными ключами вместо значений varchar, не обнуляются и т. Д.).
Помните, что даже если вы запрашиваете только несколько столбцов, всю страницу необходимо читать с диска в память. Чем больше строк вы можете разместить на странице, тем меньше страниц нужно прочитать серверу.
Если сеть является узким местом, то достаточно выбрать только нужные вам столбцы и сделать их узкими (ключ int вместо значения varchar).
С уважением GJ