Saugomos procedūros užtikrina aukštą efektyvumą ir saugumą
Microsoft SQL Server pateikia saugomos procedūros mechanizmą, kuris supaprastina duomenų bazių kūrimo procesą, suskirstant Transact-SQL pareiškimus į valdomus blokus. Saugomos procedūros yra vertinamos daugelio SQL serverių kūrėjų, kurie mano, kad efektyvumas ir saugumo nauda, kurią jie gaus, yra vertingos iš anksto investuoti laiku.
Saugomų procedūrų naudojimo privalumai
Kodėl kūrėjas turėtų naudoti saugomas procedūras?
Štai pagrindiniai šios technologijos privalumai:
- Iš anksto sudarytas vykdymas: " SQL Server" kaupia kiekvieną saugomą procedūrą vieną kartą ir iš naujo išplečia vykdymo planą. Tai sukelia milžinišką našumo padidėjimą, kai saugomos procedūros vadinamos pakartotinai.
- Sumažintas kliento / serverio srautas: jei jūsų tinklo aplinkoje priskiriamas tinklo pralaidumas, jums bus malonu sužinoti, kad saugomos procedūros gali sumažinti ilgas SQL užklausas į vieną eilutę, kuri perduodama per laidą.
- Efektyvus kodo ir programavimo abstrakcijos pakartotinis naudojimas: išsaugotas procedūras gali naudoti keli vartotojai ir kliento programos. Jei naudosite juos suplanuotu būdu, pamatysite, kad kūrimo ciklas trunka mažiau laiko.
- Patobulinta saugos kontrolė: galite suteikti vartotojams teisę vykdyti saugomą procedūrą nepriklausomai nuo pagrindinių lentelių leidimų.
Išsaugotos procedūros yra panašios į vartotojo apibrėžtas funkcijas, tačiau yra smulkių skirtumų.
Struktūra
Išsaugotos procedūros yra panašios į konstrukcijas, matomas kitose programavimo kalbose.
Jie priima duomenis įvesties parametrų forma, kurie nurodyti vykdymo metu. Šie įvesties parametrai (jei jie yra įgyvendinami) naudojami vykdant eilę teiginių, kurie sukuria tam tikrą rezultatą. Šis rezultatas grąžinamas į skambinimo aplinką naudojant įrašų rinkinį, išvesties parametrus ir grąžinimo kodą.
Tai gali atrodyti kaip garsiai, bet jūs pamatysite, kad saugomos procedūros iš tiesų yra gana paprasta.
Pavyzdys
Pažiūrėkime į praktinį pavyzdį, susijusį su šio skelbimo puslapio apačioje pateikta lentelė. Ši informacija yra atnaujinama realiuoju laiku, o sandėlio valdytojai nuolat tikrina jų sandėlyje sandėliuojamų ir tiekiamų prekių lygius. Anksčiau kiekvienas valdytojas paleisdavo tokias užduotis:
PASIRINKITE Produktą, kiekį
Iš inventoriaus
KUR sandėlis = "FL"
Dėl to SQL Server neefektyviai veikė. Kiekvieną kartą, kai sandėlio valdytojas įvykdė užklausą, duomenų bazės serveris buvo priverstas pakartotinai sukonfigūruoti užklausą ir jį vykdyti iš naujo. Ji taip pat reikalavo, kad sandėlio valdytojas žinotų SQL ir atitinkamus leidimus, kad galėtumėte pasiekti lentelės informaciją.
Vietoj to procesas gali būti supaprastintas naudojant saugomą procedūrą. Štai proceso, vadinamo sp_GetInventory, kodas, skirtas gauti tam tikro sandėlio atsargų lygius.
Kurti PROCEDŪRA sp_GetInventory
@location varchar (10)
AS
PASIRINKITE Produktą, kiekį
Iš inventoriaus
KUR sandėlis = @ vieta
Floridos sandėlio vadybininkas gali pasiekti atsargų lygius, išduodamas komandą:
EXECUTE sp_GetInventory "FL"
Niujorko sandėlio valdytojas gali naudoti tą patį saugomą procedūrą, kad pasiektų tos srities inventorių:
EXECUTE sp_GetInventory "NY"
Manoma, kad tai yra paprastas pavyzdys, bet abstrakcijos naudą galima pamatyti čia. Sandėlio valdytojui nereikia suprasti SQL ar vidinės procedūros. Iš veikimo perspektyvos saugoma procedūra veikia stebuklai. SQL Server vieną kartą atlieka vykdymo planą ir iš naujo jį iš naujo įveda, įjungiant tinkamus parametrus vykdymo metu.
Dabar, kai sužinojote saugomų procedūrų privalumus, išeikite ten ir naudokitės jais.
Išbandykite keletą pavyzdžių ir išmatuokite pasiektus pasiekimus - jūs būsite nustebinti!
Inventoriaus lentelė
| ID | Produktas | Sandėlis | Kiekis |
| 142 | Žaliosios pupelės | NY | 100 |
| 214 | Žirniai | FL | 200 |
| 825 | Kukurūzai | NY | 140 |
| 512 | Lima pupelės | NY | 180 |
| 491 | Pomidorai | FL | 80 |
| 379 | Arbūzas | FL | 85 |