Shranjeni postopki SQL Server

Shranjeni postopki zagotavljajo visoke učinkovitosti in varnostne koristi

Microsoft SQL Server ponuja mehanizem za shranjene postopke za poenostavitev procesa razvoja baze podatkov z združevanjem stavkov Transact-SQL v obvladljive blokade. Večina razvijalcev programske opreme SQL Server, ki ugotavljajo, da izkoristijo prednosti učinkovitosti in varnosti, so vredne vnaprejšnje naložbe v času.

Koristi uporabe shranjenih postopkov

Zakaj mora razvijalec uporabljati shranjene postopke?

Tukaj so ključne prednosti te tehnologije:

Shranjeni postopki so podobni uporabniško definiranim funkcijam, vendar so zelo različne.

Struktura

Shranjeni postopki so podobni konstruktom v drugih programskih jezikih.

Sprejemajo podatke v obliki vhodnih parametrov, ki so določeni v času izvajanja. Ti vhodni parametri (če se izvajajo) se uporabljajo pri izvedbi vrste izjav, ki dajejo določen rezultat. Ta rezultat se vrne v klicno okolje z uporabo zapisov, izhodnih parametrov in povratne kode.

To se lahko zgodi, kot da je usta, vendar boste ugotovili, da so shranjeni postopki precej preprosti.

Primer

Oglejmo si praktični primer, ki se nanaša na tabelo z imenom, prikazano na dnu te strani. Ti podatki se posodabljajo v realnem času, upravljavci skladišč pa redno preverjajo ravni izdelkov, shranjenih v njihovem skladišču, in so na voljo za pošiljanje. V preteklosti bi vsak upravitelj izvajal poizvedbe, podobne naslednjim:

IZBERI izdelek, količino
IZ inventarja
KJE Skladišče = 'FL'

To je povzročilo neučinkovito delovanje na SQL Server. Vsakič, ko je upravitelj skladišča izvedel poizvedbo, je bil strežnik baze podatkov prisiljen, da se poizvedbo ponovno prevede in izvede iz nič. Prav tako je od upravljavca skladišča zahteval, da ima znanje o SQL in ustrezna dovoljenja za dostop do informacij v tabeli.

Namesto tega se postopek lahko poenostavi z uporabo shranjenega postopka. Tukaj je koda za postopek, imenovan sp_GetInventory, ki pridobiva zaloge zalog za določeno skladišče.

PRIPRAVA POSTOPEK sp_GetInventory
@ location varchar (10)
AS
IZBERI izdelek, količino
IZ inventarja
KJE Skladišče = @lokacija

Upravitelj skladišča Florida nato lahko dostopa do nivojev inventarja z izdajo ukaza:

EXECUTE sp_GetInventory "FL"

Upravitelj skladišča v New Yorku lahko za dostop do popisa tega območja uporablja isti shranjeni postopek:

EXECUTE sp_GetInventory "NY"

Seveda, to je preprost primer, toda tukaj lahko vidimo prednosti abstrakcije. Upravitelju skladišča ni treba razumeti SQL ali notranjega delovanja postopka. Z vidika delovanja, shranjeni postopek deluje čudeže. SQL Server enkrat ustvari načrt izvedbe in ga ponovno uporabi, tako da pri izvedbi vključi ustrezne parametre.

Zdaj, ko ste se naučili prednosti shranjenih postopkov, pojdite ven in jih uporabite.

Preizkusite nekaj primerov in izmerite dosežene izboljšave zmogljivosti - presenečeni boste!

Tabela inventarja

ID Izdelek Skladišče Količina
142 Stročji fižol NY 100
214 Grah FL 200
825 Koruza NY 140
512 Limski fižol NY 180
491 Paradižnik FL 80
379 Lubenica FL 85