Procedură stocată

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

O procedură stocată este un program scris în SQL sau în alte limbi, păstrat în baza de date însăși, stocat în așa-numitul dicționar de date al bazei de date . Acesta este adesea scris în versiuni de proprietate ale SQL, care sunt limbi reale structurate, cum ar fi PostgreSQL PL / pgSQL sau Oracle PL / SQL , în care codul SQL pot fi scrise. În general, în funcție de caracteristicile lor, se disting diferite tipuri de subrutine:

Funcții returnează o singură valoare pe lângă acceptarea parametrilor de intrare și / sau ieșire
Proceduri nu returnează valori, dar acceptă parametrii de intrare și / sau de ieșire
Declanșator sunt declanșate de evenimente

În general, SGBD compilează procedurile stocate, ceea ce înseamnă că le optimizează și stabilește planul de execuție a interogării.

Unele SGBD vă permit să criptați procedurile stocate. Această practică este utilizată de producătorii de software pentru a se asigura că clientul nu le poate citi. Acest mod de distribuire a software-ului se numește sursă închisă , al cărui cod trebuie să rămână secret pentru a preveni studierea sau modificarea acestuia.

Avantaje și dezavantaje

Principalele avantaje ale utilizării procedurilor stocate sunt următoarele:

  • Procedura stocată împiedică clientul să rescrie interogări complexe oferind posibilitatea de a invoca o procedură stocată în baza de date.
  • În consecință, numărul de informații care vor fi schimbate între client și server va fi, de asemenea, mai mic în beneficiul performanței.
  • Deoarece acestea sunt limbaje structurate, devin posibile elaborări complexe care nu sunt altfel realizabile folosind numai interogări SQL.
  • Compilarea unei proceduri stocate are loc o singură dată, când este inserată. De fiecare dată când procedura este apelată, aceasta este pur și simplu executată și acest lucru crește semnificativ performanța.
  • Utilizarea procedurilor stocate vă permite să mențineți biblioteci de funcții pentru a fi utilizate în baza de date. Potențial ați putea efectua fiecare operațiune apelând o procedură diferită, fără a cunoaște structura unei baze de date posibil complexe sau având cunoștințe limitate despre aceasta.
  • Tocmai din acest motiv, DBA poate uneori să evite acordarea de permisiuni de modificare sau citire pe mai multe tabele anumitor utilizatori, acordând pur și simplu permisiunea de a executa procedurile stocate.

Principalele dezavantaje sunt următoarele:

  • Procedurile stocate măresc volumul de lucru pentru server.
  • Uneori nu puteți utiliza limba pe care doriți să o utilizați, deoarece SGBD nu o acceptă.
  • Logica programului este mutată pe server; acest lucru nu este neapărat un dezavantaj, dar nu este compatibil cu modelul logic al aplicațiilor pe trei niveluri.

Limbi

Limbile care pot fi utilizate pentru scrierea procedurilor stocate sunt multe și depind de SGBD utilizat. Cele mai populare sunt cu siguranță Java și C / C ++ . SGBD oferă, de asemenea, versiuni structurate ale SQL, astfel încât să poată fi utilizat pentru a scrie proceduri care conțin condiții și bucle. Cele mai faimoase sunt:

Extensii SQL procedurale

Deși standardul SQL: 2003 include mai multe construcții care fac din SQL un limbaj procedural, DBMS-urile care implementează proceduri stocate tind să folosească extensii specifice sau se bazează pe implementări populare mai degrabă decât pe standard. La aceasta se adaugă faptul că SGBD mai ușoare nu implementează deloc proceduri stocate sau alte tipuri de rutine. Din aceste motive, constructele procedurale fac parte din SQL care este cel mai supus variației atunci când se trece de la un dialect la altul.

Extensiile SQL procedurale includ:

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT