Proċeduri maħżuna ta 'SQL Server

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:

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