Populære Indlæg På Pc'En Og Software

Top Artikler Om Internettet - 2019

Oprettelse af lagrede procedurer for din SQL Server

Microsoft SQL Server giver den lagrede proceduremekanisme for at forenkle databaseprocessen ved at gruppere Transact-SQL-sætninger i håndterbare blokke. Lagrede procedurer værdsættes af de fleste SQL Server-udviklere, der finder de effektivitets- og sikkerhedsmæssige fordele, de høster, er værd at investere på forhånd i tiden.

Fordele ved brug af lagrede procedurer

Hvorfor skal en udvikler bruge lagrede procedurer? er de vigtigste fordele ved denne teknologi:

Forkompileret udførelse:

  • SQL Server kompilerer hver gemt procedure en gang og genbruger derefter udførelsesplanen. Reduceret klient / server trafik:
  • Hvis netværkets båndbredde er et problem i dit miljø, vil du være glad for at lære, at lagrede procedurer kan reducere lange SQL-forespørgsler til en enkelt linje, der overføres over ledningen. Effektiv genbrug af kode og programmeringsabstraktion:
  • Lagrede procedurer kan bruges af flere brugere og klientprogrammer. Hvis du udnytter dem på en planlagt måde, vil du opdage, at udviklingscyklussen tager mindre tid. Forbedret sikkerhedskontrol:
  • Du kan give brugerne tilladelse til at udføre en lagret procedure uafhængigt af underliggende bordtilladelser. procedurer ligner brugerdefinerede funktioner, men der er diskrete forskelle. Struktur

Lagrede procedurer svarer til konstruktionerne set i andre programmeringssprog.

De accepterer data i form af inputparametre, der er specificeret på udførelsestidspunktet. Disse indgangsparametre (hvis implementeret) benyttes i udførelsen af ​​en række udsagn, som giver noget resultat. Dette resultat returneres til det kaldende miljø ved brug af et recordset, output parametre og en returkode.

Det kan lyde som en mundfuld, men du vil opdage, at lagrede procedurer faktisk er ret enkle.

Eksempel

Lad os tage et kig på et praktisk eksempel relateret til den tabelopstillede oversigt vist nederst på denne side. Disse oplysninger opdateres i realtid, og lagerchefer kontrollerer løbende niveauet af produkter, der er lagret på deres lager og er tilgængelige for forsendelse. Tidligere har hver leder kørt spørgsmål svarende til følgende:

SELECT Product, Quantity

FRA Inventory

WHERE Warehouse = 'FL'
Dette resulterede i ineffektiv ydeevne på SQL Server. Hver gang en lagerleder udførte forespørgslen, blev databaseserveren tvunget til at genkompilere forespørgslen og udføre den fra bunden. Det krævede også, at lageradministratoren havde viden om SQL og passende tilladelser for at få adgang til tabeloplysningerne.
I stedet kan processen forenkles ved brug af en gemt procedure. Her er koden til en procedure kaldet sp_GetInventory, der henter lagerstyringsniveauet for et givet lager.

CREATE PROCEDURE sp_GetInventory

@location varchar (10)

AS
SELECT Produkt, Mængde
FRA Lager
WHERE Warehouse = @location
Florida Warehouse Manager kan derefter få adgang til lager niveauer ved at udstede kommandoen:
EXECUTE sp_GetInventory 'FL'

New York-lageradministratoren kan bruge den samme lagrede procedure til at få adgang til områdets opgørelse:

EXECUTE sp_GetInventory 'NY'

Tilladt, dette er en simpelt eksempel, men fordelene ved abstraktion kan ses her. Lagerbehandleren behøver ikke at forstå SQL eller procedurens indre arbejde. Fra et præstationsperspektiv fungerer den lagrede procedure under. SQL Server opretter en eksekutionsplan en gang og genbruger den ved at tilslutte de relevante parametre ved udførelsestidspunktet.

Nu hvor du har lært fordelene ved lagrede procedurer, kom du ud og bruger dem.

Prøv et par eksempler og måle de opnåede præstationsforbedringer - du vil blive forbløffet!

Lager tabel
ID

Produkt

Lager Mængde 142 Grønne bønner
NY 100 214 Ærter
FL 200 825 Korn
NY 140 512 Lima bønner
NY 180 491 Tomater
FL 80 379 Watermelon
FL 85

Post Din Kommentar