DC
Если оптимизация для скаларного предиката есть, то напрашивается вывод -- разбить запрос с нескалярным предикатом на несколько заросов со скалярным, объединенных по Union all. Тем самым выбрать условно 10*n записей, а на последнем этапе уже отсортировать детерминированно и взять ровно 10. Очередь с приоритетом как раз решает такой паттерн.