Было бы полезно лучше понять, что именно нужно достичь, выражая его в терминах пользовательского домена, а не в SQL.
Кроме того, весь объем и структура запрашиваемых данных не указаны, но, вероятно, включают отношения, которые участвуют в определении производительности.
Во-первых, есть переменная таблицы Results, которая имеет свое собственное происхождение. Этот метод может быть рискованным, потому что он строит неявную временную таблицу, которая часто является деоптимизатором. Как будто вы пытаетесь навязать стратегию оптимизатору запросов.
Похоже, что вам нужно одно максимальное значение из совокупного запроса, который должен быть оптимизируемым. На самом деле, оптимизация не должна быть проблемой даже с 17K записями.
Можете ли вы повторить это в форме:
SELECT MAX(Value)
FROM some-aggregate-query
GROUP BY fields
HAVING COUNT(something)/COUNT(1) * 100 > @percent
Подсказка: по моему опыту, вы обычно движетесь в неправильном направлении, когда начинаете декомпозировать SQL (что прямо противоположно лучшей политике для процедурного кода).