Hola.
Añade un parámetro al procedimiento almacenado. De esta forma la consulta se optimizará dentro del procedimiento almacenado.
Como probablemente ese parámetro es optativo, o sea que a veces vas a querer el resultado sin que sea tenido en cuenta, yo suelo construir las consultas dentro del procedmiento, con condiciones en el where, de este tipo :
Código:
select ****
from ***
where ***** and
(:PRODUCTO is null or PRODUCTO = :PRODUCTO)
De esta forma, si dejas a Null el valor del parámetro, no lo tendrá en cuenta en la consulta.
Saludos.