Pues es medio de cajón la respuesta...
Un stored procedure en un proceso programado de una o más sentencias de SQL, para resolver consultas simples, o conjuntos de consultas, como una única operación. Un SP puede devolver o no datos-
Un stored funcion es una rutina que puede o no contener consultas a tablas, pero que siempre debe devovler un único valor (en MySQL ese valor NO puede ser una tabla o un registro).
En esencia, cuando tienes una o N operaciones que se pueden ejecutar directamente en la base, evitando interactuar con la aplicación, es conveniente hacerlo en un SP.
pero cuando lo que necesitas es obtener un valor único, que puedes usar luego dentro de una query o desde la aplicación, conviene usar SF.
¿Ejemplos?
- Si quieres obtener una tabla de fechas entre dos días dados, se puede hacer por SP (ejemplo:
http://www.forosdelweb.com/f86/faqs-...1/#post3261581).
- Si quieres obtener la distancia en Km entre dos puntos conociendo sus coordenadas geográficas, eso es una SF (ejemplo en este link:
http://www.forosdelweb.com/f86/faqs-...1/#post4198983).