in reply to (z) Separation of SQL code

It sounds like your current version is similar to Ima::DBI, which is the basis for Class::DBI so your transition could be quite easy. I'm a fan of Class::DBI and have tried Alzabo (which I suspect Class::DBI is evolving into, they just added column objects). I think Alzabo tries to do too much, YMMV.

I use MySQL with Innodb tables when I can, I just need transactions. That's when I can't ditch the RDBMS entirely. There seems to be such a mismatch between schema oriented and strongly-type databases and Perl.

Regarding stored procedures vs perl logic, read Domain Logic and SQL for a language neutral consideration of the problem. The article points out a few cases where you'd want to go one way or the other but boils down to "Choose based on your company resources and culture"