SQL Server sačuvane procedure

Shranjene procedure daju visoku efikasnost i sigurnosne prednosti

Microsoft SQL Server obezbeđuje mehanizam sačuvanog postupka za pojednostavljivanje procesa razvoja baze podataka grupiranjem Transact-SQL izraza u upravljačkim blokovima. Većina SQL Serverovih programera koji cene efikasnost i sigurnu prednost koju koriste, vrednuju unapred ulaganja u vremenu.

Koristi korišćenja pohranjenih procedura

Zašto bi programer trebao koristiti pohranjene procedure?

Evo ključnih prednosti ove tehnologije:

Čuvane procedure su slične korisničkim funkcijama, ali postoje suptilne razlike.

Struktura

Čuvane procedure slične su konstrukcijama koje se vide na drugim programskim jezicima.

Prihvataju podatke u obliku ulaznih parametara koji su navedeni u vrijeme izvršenja. Ovi ulazni parametri (ako se implementiraju) koriste se u izvršenju serije izjava koje proizvode neki rezultat. Ovaj rezultat se vraća u pozivno okruženje korištenjem registra, parametara izlaznih podataka i povratnog koda.

To može zvučati kao usta, ali ćete naći da su pohranjene procedure zapravo prilično jednostavne.

Primjer

Hajde da pogledamo praktičan primer koji se odnosi na tablicu nazvanu inventar prikazan na dnu ove stranice. Ove informacije se ažuriraju u realnom vremenu, a rukovodioci skladišta stalno proveravaju nivoe proizvoda koji se čuvaju u njihovom skladištu i dostupni za isporuku. U prošlosti, svaki menadžer će pokrenuti upite slične onima koji slijede:

SELECT Product, Quantity
FROM Inventory
Gdje je skladište = 'FL'

To je rezultiralo neefikasnim performansama na SQL Serveru. Svaki put kada je menadžer skladišta izvršio upit, server baze podataka bio je prinuđen da ponovo izvrši kompajliranje i izvrši ga iz nule. Takođe je bilo potrebno da menadžer skladišta ima znanja o SQL-u i odgovarajuće dozvole za pristup informacijama tablice.

Umesto toga, proces se može pojednostaviti upotrebom uskladištene procedure. Evo šifre procedure koja se zove sp_GetInventory koja preuzima nivo inventara za određeno skladište.

CREATE PROCEDURE sp_GetInventory
@location varchar (10)
AS
SELECT Product, Quantity
FROM Inventory
Gdje je skladište = @lokacija

Menadzer magacina u Floridi može onda pristupiti nivoima inventara izdavanjem naredbe:

EXECUTE sp_GetInventory 'FL'

Menadžer magacina skladišta u Njujorku može koristiti istu pohranjenu proceduru za pristup popisu tog područja:

EXECUTE sp_GetInventory 'NY'

Naravno, ovo je jednostavan primer, ali prednosti apstrakcije se mogu videti ovde. Menadžer magacina ne mora razumjeti SQL ili unutrašnje radnje postupka. Iz perspektive performansi, čuvana procedura radi na čudama. SQL Server jednom kreira plan izvršavanja i zatim ga ponovo koristi tako što uključuje odgovarajuće parametre u vreme izvršenja.

Sada kada ste naučili prednosti skladištenih procedura, izadite tamo i koristite ih.

Probajte nekoliko primera i izmerite poboljšanja performansi postignuta-bićete zapanjeni!

Tabela inventara

ID Proizvod Skladište Količina
142 Boranija NY 100
214 Grah FL 200
825 Kukuruz NY 140
512 Lima pasulj NY 180
491 Paradajz FL 80
379 Lubenica FL 85