SQL Server pohranjeni postupci

Pohranjeni postupci pružaju visoku učinkovitost i sigurnosne prednosti

Microsoft SQL Server osigurava mehanizam pohranjene procedure kako bi se pojednostavio proces razvoja baze podataka grupiranjem Transact-SQL izjava u blokove koji se mogu upravljati. Pohranjene procedure poštuju većina razvojnih programera sustava SQL Server koji otkrivaju učinkovitost i sigurnosne prednosti koje žele dobro isplati unaprijed ulaganju u vremenu.

Prednosti korištenja pohranjenih postupaka

Zašto programer treba koristiti pohranjene procedure?

Ovdje su ključne prednosti ove tehnologije:

Pohranjeni postupci slični su korisnički definiranim funkcijama, ali postoje suptilne razlike.

Struktura

Pohranjene procedure slične su konstrukcijama koje se vide na drugim programskim jezicima.

Oni prihvaćaju podatke u obliku ulaznih parametara koji su navedeni u vrijeme izvršenja. Ovi ulazni parametri (ako su implementirani) koriste se u izvođenju niza tvrdnji koje donose neki rezultat. Ovaj rezultat se vraća u pozivnu okolinu pomoću zapisa, izlaznih parametara i povratnog koda.

To može zvučati kao zalogaj, ali naći ćete da su pohranjene procedure zapravo prilično jednostavne.

Primjer

Pogledajmo praktičan primjer vezan uz tablicu s nazivom oglasnog prostora prikazanog na dnu ove stranice. Te se informacije ažuriraju u stvarnom vremenu, a upravitelji skladišta stalno provjeravaju razinu proizvoda pohranjenih u njihovom skladištu i dostupni su za otpremu. U prošlosti bi svaki upravitelj pokrenuo upite slične sljedećem:

SELECT proizvod, količina
Iz inventara
WHERE Warehouse = 'FL'

To je rezultiralo neučinkovitom izvedbom na SQL Serveru. Svaki put kada je upravitelj skladišta izvršio upite, poslužitelj baze podataka bio je prisiljen recompile upita i izvršiti ga od nule. Također je zahtijevao da menadžer skladišta ima znanje o SQL i odgovarajućim dozvolama za pristup informacijama o tablici.

Umjesto toga, postupak se može pojednostaviti upotrebom pohranjene procedure. Evo koda za postupak nazvan sp_GetInventory koji dohvaća razine oglasnog prostora za određeno skladište.

CREATE PROCEDURE sp_GetInventory
(10)
KAO
SELECT proizvod, količina
Iz inventara
WHERE Warehouse = @ lokacija

Florida upravitelj skladišta može pristupiti razinama zaliha izdavanjem naredbe:

EXECUTE sp_GetInventory 'FL'

Upravitelj skladišta u New Yorku može koristiti istu pohranjenu proceduru za pristup inventaru tog područja:

EXECUTE sp_GetInventory 'NY'

To je jednostavan primjer, ali prednosti apstrakcije mogu se vidjeti ovdje. Upravitelj skladišta ne mora razumjeti SQL ili unutarnje funkcioniranje postupka. Iz perspektive izvedbe, pohranjena procedura radi čuda. SQL Server stvara plan izvršenja jednom, a zatim ga ponovno upotrebljava priključivanjem odgovarajućih parametara u vrijeme izvršenja.

Sada kada ste naučili prednosti pohranjenih postupaka, izađite tamo i koristite ih.

Isprobajte nekoliko primjera i izmjerite postignute poboljšanja izvedbe - zapanjit ćete se!

Tablica oglasnog prostora

iskaznica Proizvod Skladište Količina
142 Zeleni grah NY 100
214 Grašak Florida 200
825 Kukuruz NY 140
512 Lima grah NY 180
491 rajčice Florida 80
379 Lubenica Florida 85