Hola.
Un método que podria ser mas eficiente (dependiendo de la cantidad de registros devueltos por tu query original), es simplemente lanzar un Select count(*), con la misma clausula from y where de tu primer query.
De esta forma evitas que los registros viajen al cliente, y el servidor aprovechará al máximo los indices y otros recursos disponibles para contarlos.
Si solo son unos cuantos registros... digamos no mas de mil, no veo mucha ventaja en mi método, con lo que el del cubano Rubén Acosta sigue siendo válido.
Hasta luego.