Gespeicherte Prozeduren liwweren héich Effizienz an Sécherheet Virdeeler
Microsoft SQL Server liefert de gespäichte Prozedur Mechanismus fir de Prozess vun der Datebank ze vereinfachen andeems Dir Transakt-SQL-Aussoen a verwaltbar Blocen gruppéiert. Virgeschnidde Prozeduren sinn vun de meescht SQL Server-Entwéckler geschätzt, déi d'Effizienz an d'Sécherheet profitéieren déi se ernimmen, sinn d'Wäert vun der Investitioun an d'Zäit.
Virdeeler vun de gespäicherten Prozeduren benotzt
Firwat soll en Entwéckler gespäichert Prozeduren benotzen?
Hei sinn d'Haaptdeeler vun dëser Technologie:
- Precompiléiert Executioun: SQL Server kompiléiert all gespeichert Prozedur emol a benotzt dann den Exekutiounplang reaktivéiert. Dëst Resultat bréngt en enorme Performance méi séier erop, wann gespäichert Prozeduren ëmmer erëm opgeruff ginn.
- Reduzéiert Client / Serververkéier: Wann d'Netzbandbreedung e Suergen an Ärer Ëmwelt ass, kënnt Dir léieren, datt gespaarten Prozeduren laang SQL-Querungen an eng eenzeg Linn reduzéiere kënnen, déi iwwer de Lead iwwerdroe gëtt.
- Effizient Wiederverwendung vun Code a Programméierter Abstraktioun: Gespeicherte Prozeduren kënnen duerch verschidde Benotzer a Client Programmer benotzt ginn. Wann Dir se op eng geplangte Manéier benotzt, fannt Dir de Ent- wicklungszyklus méi Zäit.
- Verbesserte Sécherheetskontrollen: Dir kënnt d'Benotzer Zougrëff erlaben eng gespeete Prozedur unabhänglech vun de zugrondege Tabellenaustausch auszeféieren.
Virgeschnidde Prozeduren si fir user definéiert Funktiounen ähnlech, awer et sinn subtile Differenzen.
Struktur
Virgeschnidde Prozeduren sinn ähnlech wéi d'Konstrukt déi an anere Programmiersprachen gesi ginn.
Si akzeptéieren d'Daten an d'Form vun Inputparameter déi an der Ausféierung Zäit uginn. Dës Input Parameter (wann se implementéiert sinn) ginn an der Ausféierung vun enger Rei vun Aussoen benotzt, déi e Resultat produzéieren. Dëst Resultat ass zréck op d'berufflech Ëmwelt duerch d'Verwäertung vun engem Recordset, Ausgabparameter an e Code return.
Dat kléngt gär wéi e Mound, awer Dir wäert dat gespaarten Prozeduren eigentlech ganz einfach sinn.
Beispill
Loosst eis e praktesche Beispill bezuelen mat der Tabell genannt Inventar, déi am ieweschten Deel vun dëser Säit agefouert gëtt. Dës Informatioun gëtt an Echtzäit aktualiséiert an d'Wuere Manager kontrolléiere permanent d'Niveaue vu Produkter op hirem Lager opzehuelen an ze liwweren. An der Vergaangenheet laaft all Manager Manager Ufroen ähnlech wéi déi folgend.
SELECT Produkt, Quantitéit
FROM Inventar
WOU WAREHAUS = FL
Dëst huet zu oneffiziente Performance am SQL Server gemaach. All Kéier wann e Wärtermanager d'Abfrage gemaach huet, ass de Datebankervermëttler gezwongen, d'Abfrage ze kompenséieren an aus dem Zuch auszeféieren. Et erfuerdert och de Wagermanager fir SQL-Kenntnisser a passende Permissiounen fir de Table Informatioun ze kréien.
Amplaz kann de Prozess vereinfacht ginn duerch d'Notzung vun enger gespäicherten Prozedur. Hei ass de Code fir eng Prozedur déi de sp_GetInventory genannt gëtt, déi d'Inventaireniveau fir e bestëmmte Lagerhaus hëlt.
CREATED PROCEDURE sp_GetInventory
@Location Varchar (10)
AS
SELECT Produkt, Quantitéit
FROM Inventar
WOU WAREHAUS = @Location
De Florida Wärterveräin kann dann den Inventärniveau erreechen andeems de Kommando ausgitt:
EXECUTE sp_GetInventory 'FL'
De New York Wahllager kann d'selwecht gelagert Prozedur benotze fir Zougang zu dësem Gebitt Zougrëff ze kréien:
EXECUTE sp_GetInventory 'NY'
Gewëss, dat ass en einfacht Beispill, awer d'Virdeeler vun der Ofstraktioun kënnt Dir hei gesinn. Den Departmanager brauch net SQL oder d'Ënnerdeelung vun der Prozedur ze verstoen. Vun enger Performanceperspektioun funktionéiert déi gespäichert Prozedur wonner. De SQL Server erstallt en Executiounsplan erof an dann setzt dat ze maachen, andeems d'passende Parameteren bei der Ausféierung Zäit plangen.
Elo, datt Dir d'Virdeeler vun de gespäicherten Prozeduren geléiert hutt, raus aus a benotze se.
Probéiert e puer Beispiller a méigleche Verännerungen ze realiséieren - Dir wäert iwwerrascht sinn!
Inventaire Dësch
ID | Produkt | Warehouse | Quantitéit |
142 | Gréng Bounen | NY | 100 |
214 | Peas | FL | 200 |
825 | Mais | NY | 140 |
512 | Lima Bounen | NY | 180 |
491 | Tomaten | FL | 80 |
379 | Waassermeloun | FL | 85 |