SQL Server uložené procedúry

Uložené procedúry prinášajú vysokú účinnosť a výhody v oblasti bezpečnosti

Microsoft SQL Server poskytuje mechanizmus uloženej procedúry na zjednodušenie procesu vývoja databázy zoskupením príkazov Transact-SQL do zvládnuteľných blokov. Uložené procedúry sú oceňované väčšinou developerov serverov SQL Server, ktorí zistili, že výhody a efektívne výhody, ktoré prinášajú, stojí za to vopred.

Výhody používania uložených procedúr

Prečo by mal vývojár používať uložené procedúry?

Tu sú kľúčové výhody tejto technológie:

Uložené procedúry sú podobné používateľom definovaným funkciám, existujú však jemné rozdiely.

štruktúra

Uložené procedúry sú podobné konštrukciám zobrazeným v iných programovacích jazykoch.

Prijímajú údaje vo forme vstupných parametrov, ktoré sú špecifikované v čase realizácie. Tieto vstupné parametre (ak sú implementované) sa využívajú pri vykonávaní série vyhlásení, ktoré prinášajú určitý výsledok. Tento výsledok sa vráti do volajúceho prostredia pomocou súborov záznamov, výstupných parametrov a návratového kódu.

To môže znieť ako huba, ale zistíte, že uložené procedúry sú vlastne celkom jednoduché.

príklad

Poďme sa pozrieť na praktický príklad súvisiaci s tabuľkou nazvanou inventár zobrazenou v spodnej časti tejto stránky. Tieto informácie sa aktualizujú v reálnom čase a správcovia skladu neustále kontrolujú úrovne produktov uložených v ich sklade a sú k dispozícii na odoslanie. V minulosti by každý manažér mohol spúšťať dopyty podobné nasledujúcim:

VÝBER produktu, množstvo
Z inventára
WHERE sklad = 'FL'

To viedlo k neefektívnemu výkonu na serveri SQL Server. Pokaždé, keď manažér skladu vykonal dotaz, bol databázový server nútený prekompilovať dotaz a spustiť ho od začiatku. Vyžadovalo tiež, aby správca skladu vedel o znalosti SQL a príslušných povoleniach na prístup k informáciám o tabuľke.

Namiesto toho môže byť proces zjednodušený pomocou uloženej procedúry. Tu je kód pre postup s názvom sp_GetInventory, ktorý načíta hladiny zásob pre daný sklad.

CREATE POSTUP sp_GetInventory
@location varchar (10)
AS
VÝBER produktu, množstvo
Z inventára
KDE SKLADAŤ = @ umiestnenie

Správca skladov v štáte Florida môže potom pristupovať k hladinám zásob pomocou príkazu:

EXECUTE sp_GetInventory 'FL'

Manažér skladov v New Yorku môže použiť rovnakú uloženú procedúru na prístup k inventáru tejto oblasti:

EXECUTE sp_GetInventory 'NY'

Toto je jednoduchý príklad, ale tu vidíme výhody abstrakcie. Správca skladu nemusí chápať SQL alebo vnútorné fungovanie postupu. Z hľadiska výkonnosti je uložená procedúra zázračná. SQL Server raz a potom znovu použije plán spúšťania pripojením príslušných parametrov v čase vykonania.

Teraz, keď ste sa naučili výhody uložených procedúr, odistite sa a použite ich.

Vyskúšajte niekoľko príkladov a zmerajte dosiahnuté vylepšenia - budete ohromení!

Tabuľka zásob

ID výrobok sklad množstvo
142 Zelené fazule NY 100
214 Hrach FL 200
825 kukurica NY 140
512 Lima fazuľa NY 180
491 paradajky FL 80
379 vodný melón FL 85