Зная, что эти наборы заполнены реляционным запросом, я бы посоветовал вам хотя бы поменять местами написание лучшего SQL-запроса, чтобы получить то, что вы хотите, а не делать это в памяти. Есть несколько причин, почему. Во-первых, большинство реляционных баз данных оптимизированы для более эффективной работы, чем ваш код. Во-вторых, вы позволяете серверу, на котором работает реляционная база данных, выполнять больше работы, для которой он предназначен. В-третьих, если размер наборов станет большим, вы будете излишне обременять средний уровень необходимостью возвращать результаты, выделять для них память, а затем выбрасывать нежелательные результаты.