Proċeduri maħżuna Jipprovdu Effiċjenza Għolja u Benefiċċji ta 'Sigurtà
Microsoft SQL Server jipprovdi l-mekkaniżmu tal-proċedura maħżuna biex jissimplifika l-proċess ta 'żvilupp ta' database billi jiġbor id-dikjarazzjonijiet Transact-SQL fi blokki maniġġabbli. Proċeduri maħżuna huma apprezzati mill-biċċa l-kbira ta 'l-iżviluppaturi ta' SQL Server li jsibu l-effiċjenza u l-benefiċċji tas-sigurtà li jgawdu huma ukoll jiswa l-investiment bil-quddiem fil-ħin.
Benefiċċji tal-użu ta 'Proċeduri maħżuna
Għalfejn l-iżviluppatur juża l-proċeduri maħżuna?
Hawn huma l-benefiċċji ewlenin ta 'din it-teknoloġija:
- Eżekuzzjoni minn qabel: SQL Server jikkompila kull proċedura maħżuna darba u mbagħad jerġa 'juża l-pjan ta' eżekuzzjoni. Dan jirriżulta f'impuls qawwi tal-prestazzjoni meta l-proċeduri maħżuna jissejħu ripetutament.
- It-traffiku tal-klijent / server imnaqqas: Jekk il-bandwidth tan-netwerk huwa ta 'tħassib fl-ambjent tiegħek, int tkun kuntent li titgħallem li l-proċeduri maħżuna jistgħu jnaqqsu mistoqsijiet SQL twal għal linja waħda li tiġi trażmessa fuq il-wajer.
- L-użu mill-ġdid effiċjenti tal-kodiċi u l-estrazzjoni tal-programmazzjoni: Il- proċeduri maħżuna jistgħu jintużaw minn utenti multipli u programmi tal-klijenti. Jekk tużahom b'mod ippjanat, issib li ċ-ċiklu ta 'l-iżvilupp jieħu inqas ħin.
- Kontrolli mtejba tas-sigurtà: Tista 'tagħti lill-utenti l-permess li jesegwixxu proċedura maħżuna indipendentement mill-permessi tal-mejda sottostanti.
Il-proċeduri maħżuna huma simili għal funzjonijiet definiti mill-utent, iżda hemm differenzi sottili.
Struttura
Il-proċeduri maħżuna huma simili għall-kostrutturi li dehru f'lingwi oħra ta 'programmar.
Huma jaċċettaw data fil-forma ta 'parametri ta' input li huma speċifikati fil-ħin ta 'eżekuzzjoni. Dawn il-parametri ta 'input (jekk implimentati) huma utilizzati fl-eżekuzzjoni ta' serje ta 'dikjarazzjonijiet li jipproduċu xi riżultat. Dan ir-riżultat jintbagħat lura lill-ambjent li ssejjaħ permezz tal-użu ta 'sett tar-rekords, parametri tal-output u kodiċi tar-ritorn.
Dan jista 'jseħħ ħafif, iżda ssib li l-proċeduri maħżuna huma pjuttost sempliċi.
Eżempju
Ejja nħarsu lejn eżempju prattiku relatat mat-tabella bl-isem ta 'l-inventarju muri fil-qiegħ ta' din il-paġna. Din l-informazzjoni hija aġġornata f'ħin reali, u l-maniġers tal-maħżen qed jikkontrollaw kontinwament il-livelli ta 'prodotti maħżuna fil-maħżen tagħhom u disponibbli għall-ġarr. Fil-passat, kull maniġer imexxi mistoqsijiet simili għal dawn li ġejjin:
PRODOTT TAGĦŻEL, Kwantità
MINN Inventarju
FEJN Warehouse = 'FL'
Dan irriżulta f'rendiment ineffiċjenti fis-SQL Server. Kull darba li maniġer tal-maħżen għamel il-mistoqsija, is-server tad-database kien imġiegħel jerġa 'jimla l-mistoqsija u jesegwixxih mill-bidu nett. Ħtieġet ukoll li l-maniġer tal-maħżen ikollu għarfien ta 'SQL u permessi xierqa biex jaċċessa l-informazzjoni tal-mejda.
Minflok, il-proċess jista 'jiġi ssimplifikat permezz tal-użu ta' proċedura maħżuna. Hawn hu l-kodiċi għal proċedura msejħa sp_GetInventory li tirkupra l-livelli tal-inventarju għal maħżen partikolari.
OĦRAJN PROĊEDURA sp_GetInventory
@location varchar (10)
AS
PRODOTT TAGĦŻEL, Kwantità
MINN Inventarju
FEJN Warehouse = @ lokalizzazzjoni
Il-maniġer tal-maħżen ta 'Florida jista' mbagħad jaċċessa l-livelli tal-inventarju billi joħroġ il-kmand:
EŻEKUT sp_GetInventory 'FL'
Il-maniġer tal-maħżen ta 'New York jista' juża l-istess proċedura maħżuna biex jaċċessa l-inventarju taż-żona:
EŻEKUT sp_GetInventory 'NY'
Mogħtija, dan huwa eżempju sempliċi, imma l-benefiċċji tal-estrazzjoni jistgħu jidhru hawnhekk. Il-maniġer tal-maħżen m'għandux għalfejn jifhem SQL jew il-ħidma interna tal-proċedura. Minn perspettiva ta 'prestazzjoni, il-proċedura maħżuna tistaqsi. Is-SQL Server joħloq pjan ta 'eżekuzzjoni darba u mbagħad jerġa' jużah billi jimtela l-parametri xierqa fil-ħin ta 'l-eżekuzzjoni.
Issa li tgħallimt il-benefiċċji tal-proċeduri maħżuna, toħroġ hemmhekk u tużahom.
Ipprova ftit eżempji u tkejjel it-titjib tal-prestazzjoni miksub, int se tkun étonné!
Tabella tal-Inventarju
ID | Prodott | Maħżen | Kwantità |
142 | Fażola ħadra | NY | 100 |
214 | Piżelli | FL | 200 |
825 | Corn | NY | 140 |
512 | Fażola ta 'Lima | NY | 180 |
491 | Tadam | FL | 80 |
379 | Id-dulliegħa | FL | 85 |