La,
Stored procedūros duomenų bazių valdymo sistemose veikia panašiai kaip ir procedūros/funkcijos žinomose programavimo kalbose. Jos idomios tuo, kad laikomos duomenų bazėje. Dažniausiai stored procedūrose aprašomi veiksmai su duomenų bazėmis, kurių nėra reikalo kelti į programas. Tarkim trigeris galima sakyti irgi yra stored procedūra, tik su praplėstu funkcionalumu - iškviečiamas automatiškai prie tam tikrų aplinkybių. į stored procedūra gali rašyti krūvą SQL užklausų - kitaip sakant atlikti tam tikrus veiksmus. šiaip yra ir privalumų ir minusų.
Minusai:
- nėra vieningo stored procedūrų standarto, kas apsunkina migracijas iš vienos DBVS į kitą;
- SQL'as ganėtinai atsilieka savo funkcionalumu nuo aukšto lygio programavimo kalbų, todėl kartais sunku atlikti norimus veiksmus;
Pliusai:
- didžiąją dali kodo susijusio su duomenų valdymu galima perkelti tiesiai į DBVS taip aiškiau atskiriant programos lygius/sluoksnius (tarkim naudojant įvairius programavimo šablonus);
- palengvina užduotį kai reikia migruoti iš vienos programavimo kalbos į kitą paliekant tą pačia duomenų bazę;
- atliekant manipuliacijas su duomenimis stored procedūroje duomenys nėra perduodami į aplikaciją - tik rezultatai;
ir pan. ;)
Daugiau visokios informacijos galima rasti:
http://en.wikipedia.org/wiki/Stored_procedure
http://dev.mysql.com/doc/refman/5.0/en/ … n-faq.html
http://dev.mysql.com/doc/refman/5.0/en/ … edure.html