Stored procedure pomažu u razdvajanju slojeva informacionog sistema na db sloj i aplikativni sloj.
Recimo da na projektu rade dve osobe: aplikativni programer i DB administrator. Tada se njih dvojica dogovore šta neki upit treba da radi. DB administrator sastavi upit i stavi ga u stored proceduru. Programer poziva tu proceduru i ne mora da zna kako upit izgleda.
U čemu je poenta. Aplikacija se pusti u rad i DB administrator nadgleda rad baze. Broj podataka u bazi raste, a onaj upit postaje sve sporiji i sporiji. DB administrator pronadje način da celu stvar ubrza, ali mora da promeni rad samog upita (ne i rezultat). Pošto se upit nalazi u stored proceduri, DB admin može da ga zameni, a da se ne pipne ni jedno slovo source-a aplikacije! Programer nemora ni da zna da je DBA menjao upit.
Ako su programer i DBA ista osoba onda i nema puno smisla koristiti stored procedure.
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming." - Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo