SQLa Servilo Stokitajn Procedojn

Stokitaj Procedoj Elsendas Alta Efikeco kaj Sekurecaj Utiloj

Microsoft SQLa Servilo provizas la konservitan proceduron-mekanismon por simpligi la datuman disvolviĝon-procezon grupigante Transakt-SQL-deklarojn en manipuleblajn blokojn. Storitaj proceduroj estas estimataj de la plej multaj programistoj de SQL-serviloj, kiuj trovas la efikecon kaj sekurecajn profitojn, kiujn ili rikoltas, bone valoras la antaŭan investon en tempo.

Profitoj de Uzado de Stokitaj Procedoj

Kial devus programisto uzi stokitajn procedurojn?

Jen la ŝlosiloj de ĉi tiu teknologio:

Storitaj proceduroj estas similaj al uzitaj difinitaj funkcioj, sed estas subtilaj diferencoj.

Strukturo

Storitaj proceduroj estas similaj al la konstruaĵoj viditaj en aliaj programlingvoj.

Ili akceptas datumojn en la formo de enmetaj parametroj, kiuj estas specifitaj ĉe tempo de ekzekuto. Ĉi tiuj enmetaj parametroj (se implementitaj) estas uzataj en la ekzekuto de serio de deklaroj kiuj produktas iujn rezultojn. Ĉi tiu rezulto estas redonita al la vokata medio per la uzo de dosieroj, elimetraj parametroj kaj redono.

Tio povas soni kiel buŝo, sed vi trovos, ke stokitaj proceduroj estas vere simplaj.

Ekzemplo

Ni rigardu praktikan ekzemplon rilatitan al la tablo nomata inventaro montrita ĉe la malsupro de ĉi tiu paĝo. Ĉi tiu informo ĝisdatiĝas en reala tempo, kaj magazenistoj konstante kontrolas la nivelojn de produktoj stokitaj en sia magazeno kaj disponeblaj por sendo. En la pasinteco, ĉiu administranto kuros similajn demandojn al la sekvaj:

Elektu Produkton, Kvanto
De Inventaro
WHERE Warehouse = 'FL'

Ĉi tio rezultigis inefican efikecon ĉe la SQL-servilo. Ĉiufoje kiam komercisto administris la konsulton, la datumbaza servilo devigis repagi la konsulton kaj ekzekuti ĝin de nulo. Ĝi ankaŭ postulis la magazeniston havi scion pri SQL kaj taŭgaj permesoj por aliri la tablon-informon.

Anstataŭe, la procezo povas esti simpligita per la uzo de konservita proceduro. Jen la kodo por procedo nomita sp_GetInventory, kiu retrovas la inventajn nivelojn por donita magazeno.

KREU PROCEDURO sp_GetInventory
@location varchar (10)
AS
Elektu Produkton, Kvanto
De Inventaro
Kie Warehouse = @location

La komercisto de la magazeno de Florido povas tiam aliri nivelojn de inventaro per elsendo de la komando:

EXECUTE sp_GetInventory 'FL'

La komercisto de Nov-Jorko povas uzi la saman stokatan proceduron por aliri la inventaron de tiu areo:

Ekskluzive sp_GetInventory 'NY'

Donita, ĉi tio estas simpla ekzemplo, sed la avantaĝoj de abstraktaĵo povas vidi ĉi tie. La magazeno ne bezonas kompreni SQL aŭ la internajn laborojn de la proceduro. De rendimento, la stokata proceduro faras mirindaĵojn. La SQL-servilo kreas ekzekutan planon unufoje kaj poste reutiligas ĝin per alkroĉado en la taŭgaj parametroj ĉe tempo de ekzekuto.

Nun, ke vi lernis la profitojn de stokitaj proceduroj, eliru kaj uzu ilin.

Provu kelkajn ekzemplojn kaj mezuru la efikecajn pliboniĝojn atingitajn - vi estos mirigitaj!

Inventaro Tablo

ID Produkto Magazeno Kvanto
142 Verdaj fazeoloj NY 100
214 Pizoj FL 200
825 Maizo NY 140
512 Fajlofaj faboj NY 180
491 Tomatoj FL 80
379 Akvomelono FL 85