- They're not portable across different SQL dialects
- No sproc debugging tools in the MySQL package
- The MySQLSQL language variant used in stored routines is prolix, primitive, awkward and buggy
- They do not generally iprove performance
- They cannot be passed and cannot return return resultsets
Suggestion: use them only when you need the functionalities that are only available in them---control flow constructs, MySQL error handlers.