"Какой самый быстрый способ узнать длину заданного результата?"
ЕДИНСТВЕННЫЙ способ действительно знать это считать их всех. Вы хотите знать, сколько SMITH в телефонной книге. Вы их считаете.
Если это небольшой набор результатов, и он быстро получен, это не проблема. Например, в телефонной книге не будет много Гэндальфов, и вы, вероятно, все равно захотите получить их все.
Если это большой набор результатов, вы можете сделать оценку, хотя это не совсем то, для чего SQL хорошо спроектирован.
Чтобы избежать кэширования всего набора результатов на клиенте, вы можете попробовать
select id, count(1) over () n from junk;
Тогда у каждой строки будет дополнительный столбец (в данном случае n) с количеством строк в наборе результатов. Но все равно потребуется столько же времени, чтобы прийти к счетчику, так что все еще велика вероятность тайм-аута.
Компромисс - получить первые сто (или тысячу) рядов и не беспокоиться о разбивке на страницы.