Procedurat e ruajtura ofrojnë efikasitet të lartë dhe përfitime të sigurisë
Microsoft SQL Server siguron mekanizmin e procedurës së ruajtur për të thjeshtuar procesin e zhvillimit të bazës së të dhënave duke grupuar deklaratat Transact-SQL në blloqe të menaxhueshme. Procedurat e ruajtura vlerësohen nga shumica e zhvilluesve të SQL Server, të cilët gjejnë efikasitetin dhe përfitimet e sigurisë që korrin, ia vlen të investojnë në kohë.
Përfitimet e përdorimit të procedurave të ruajtura
Pse një zhvilluesi duhet të përdorë procedurat e ruajtura?
Këtu janë përfitimet kryesore të kësaj teknologjie:
- Ekzekutimi i paracaktuar: SQL Server përpilon secilën procedurë të ruajtur një herë dhe pastaj riutilizon planin e ekzekutimit. Kjo rezulton në ngritje të jashtëzakonshme të performancës kur procedurat e ruajtura thirren në mënyrë të përsëritur.
- Trafiku i reduktuar i klientit / serverit: Nëse bandwidth në rrjet është një shqetësim në mjedisin tuaj, do të jeni të lumtur të mësoni se procedurat e ruajtura mund të reduktojnë query të gjata SQL në një linjë të vetme që transmetohet mbi tela.
- Ri-përdorim i efektshëm i kodit dhe abstraksionit të programimit: Procedurat e ruajtura mund të përdoren nga përdoruesit e shumtë dhe programet e klientëve. Nëse i shfrytëzoni ato në një mënyrë të planifikuar, do të gjeni se cikli i zhvillimit ka pak kohë.
- Kontrollet e avancuara të sigurisë: Ju mund t'u jepni përdoruesve leje për të ekzekutuar një procedurë të ruajtur pavarësisht nga lejet e tabelave themelore.
Procedurat e ruajtura janë të ngjashme me funksionet e përcaktuara nga përdoruesit, por ka dallime delikate.
strukturë
Procedurat e ruajtura janë të ngjashme me konstruktet e shikuara në gjuhët e tjera programore.
Ato pranojnë të dhëna në formë të parametrave të inputeve që janë specifikuar në kohën e ekzekutimit. Këto parametra të hyrjes (nëse zbatohen) përdoren në ekzekutimin e një serie deklaratash që prodhojnë ndonjë rezultat. Ky rezultat i kthehet mjedisit të thirrjes përmes përdorimit të një skedari, parametrave të prodhimit dhe një kodi të kthimit.
Kjo mund të tingëllojë si një gulçim, por do të zbuloni se procedurat e ruajtura në të vërtetë janë mjaft të thjeshta.
shembull
Le të hedhim një vështrim në një shembull praktik në lidhje me tabelën me emrin e inventarit të treguar në pjesën e poshtme të kësaj faqeje. Ky informacion përditësohet në kohë reale, dhe menaxherët e magazinave kontrollojnë vazhdimisht nivelet e produkteve të depozituara në magazinën e tyre dhe janë në dispozicion për dërgesë. Në të kaluarën, çdo menaxher do të drejtojë pyetje të ngjashme me sa vijon:
Produkti SELECT, Sasia
NGA Inventari
KU SHKALLA = 'FL'
Kjo ka rezultuar në performancë joefikase në SQL Server. Çdo herë që një menaxher depoje ekzekutoi pyetjen, serveri i bazës së të dhënave u detyrua të recompile query dhe të ekzekutojë atë nga e para. Gjithashtu kërkoi që menaxheri i magazinës të ketë njohuri për SQL dhe lejet e duhura për të hyrë në informacionin e tabelës.
Në vend të kësaj, procesi mund të thjeshtohet nëpërmjet përdorimit të një procedure të ruajtur. Ja kodi për një procedurë të quajtur sp_GetInventory që merr nivelet e inventarit për një depo të dhënë.
CREATE PROCEDURA sp_GetInventory
@ lokacimi i varchar (10)
AS
Produkti SELECT, Sasia
NGA Inventari
Ku Magazina = @ vendndodhjen
Menaxheri i magazinës në Florida pastaj mund të arrijë nivelet e inventarit duke lëshuar komandën:
EXECUTE sp_GetInventory 'FL'
Menaxheri i magazinës së Nju Jorkut mund të përdorë të njëjtën procedurë të ruajtur për të hyrë në inventarin e asaj zone:
EXECUTE sp_GetInventory 'NY'
Pa dyshim, ky është një shembull i thjeshtë, por përfitimet e abstraksionit mund të shihen këtu. Menaxheri i magazinës nuk ka nevojë të kuptojë SQL ose punimet e brendshme të procedurës. Nga një perspektivë e performancës, procedura e ruajtur bën mrekulli. SQL Server krijon një plan ekzekutimi një herë dhe pastaj e riutilizon atë duke mbyllur parametrat e duhur në kohën e ekzekutimit.
Tani që ju keni mësuar përfitimet e procedurave të ruajtura, dilni atje dhe i përdorni ato.
Provoni disa shembuj dhe matni përmirësimet e arritura të arritura - do të mbeteni të habitur!
Tabela e inventarit
ID | Produkt | depo | sasi |
142 | Bishtaja | NY | 100 |
214 | bizele | FL | 200 |
825 | misër | NY | 140 |
512 | Fasule Lima | NY | 180 |
491 | Domate | FL | 80 |
379 | shalqi | FL | 85 |