RoR, Judge Judy, and little old ladies

Sean Kelly sean at f4.ca
Sun Feb 11 10:14:40 PST 2007


Andrei Alexandrescu (See Website For Email) wrote:
> 
> I'm not even thinking of stored procedures as logic vehicles. All stored 
> procedures I've dealt with were little more than simply stored views 
> (SELECT statements). If I want to see customer phone numbers and their 
> orders, I'm glad to let the database do that efficiently by doing an 
> inner join and passing me the information in one shot, instead of having 
> me look at the two relevant tables for the sake of object orientedness. 
> To say nothing about data integrity, which is best taken care of at the 
> database level.

Stored procedures have a few advantages over inline queries:

- Speed.  Stored procedures are pre-compiled.  This can have a 
tremendous impact on performance for server applications.
- Decoupling.  If the schema changes the app doesn't typically even need 
recompilation, it "just works" so long as the stored procs are updated 
as well.
- Security.  Access to the tables can be restricted to admins so the 
only thing a user can do is run approved stored procs.
- Encapsulation.  This is really an extension of decoupling, but from 
more of an OO perspective.  Hiding data access and manipulation behind 
structs has the same advantages of the same thing in OO programming 
languages.

By comparison, views are pre-compiled and provide security, but not the 
other two features.  Quite simply, all interaction with a DB in 
applications I design is through stored procedures.  If a particular 
server doesn't support them then it's a toy.


Sean



More information about the Digitalmars-d mailing list