SQL Server gestoor prosedures

Gebergde prosedures lewer hoë doeltreffendheid en sekuriteitsvoordele

Microsoft SQL Server bied die gestoor prosedure meganisme om die databasis ontwikkelingsproses te vereenvoudig deur Transact-SQL-stellings in bestuurbare blokke te groepeer. Gestoor prosedures word waardeer deur die meeste SQL Server-ontwikkelaars wat die doeltreffendheids- en veiligheidsvoordele wat hulle maai, die moeite werd is om die voorafgaande belegging betyds te waardeer.

Voordele van die gebruik van gestoor prosedures

Hoekom moet 'n ontwikkelaar gestoor prosedures gebruik?

Hier is die belangrikste voordele van hierdie tegnologie:

Gestoor prosedures is soortgelyk aan gebruiker-gedefinieerde funksies, maar daar is subtiele verskille.

struktuur

Gestoor prosedures is soortgelyk aan die konstrukte wat in ander programmeertale gesien word.

Hulle aanvaar data in die vorm van invoer parameters wat op uitvoeringstyd gespesifiseer word. Hierdie insetparameters (indien geïmplementeer) word gebruik in die uitvoering van 'n reeks stellings wat tot gevolg het. Hierdie resultaat word teruggestuur na die roerende omgewing deur gebruik te maak van 'n rekordverstelling, uitvoerparameters en 'n retourkode.

Dit klink dalk soos 'n mondvol, maar jy sal vind dat gestoor prosedures eintlik redelik eenvoudig is.

voorbeeld

Kom ons kyk na 'n praktiese voorbeeld wat verband hou met die tabel wat genoem word onderaan hierdie bladsy. Hierdie inligting word in reële tyd opgedateer, en pakhuisbestuurders monitor die produkte wat in hul pakhuis gestoor word en word vir verskeping beskikbaar. In die verlede sal elke bestuurder navrae doen wat soortgelyk is aan die volgende:

SELECT Product, Hoeveelheid
Uit voorraad
WAAR Warehouse = 'FL'

Dit het gelei tot ondoeltreffende prestasie by die SQL Server. Elke keer as 'n pakhuisbestuurder die navraag uitgevoer het, is die databasisbediener verplig om die soektog te kompilereer en dit van nuuts af af te voer. Dit het ook vereis dat die pakhuisbestuurder kennis dra van SQL en toepaslike regte om toegang tot die tabelinligting te verkry.

In plaas daarvan kan die proses vereenvoudig word deur gebruik te maak van 'n gestoor prosedure. Hier is die kode vir 'n prosedure genaamd sp_GetInventory wat die voorraadvlakke vir 'n gegewe pakhuis haal.

SKEP PROSEDURE sp_GetInventory
@location varchar (10)
AS
SELECT Product, Hoeveelheid
Uit voorraad
WAAR Pakhuis = @ ligging

Die Florida-pakhuisbestuurder kan dan voorraadvlakke bereik deur die opdrag uit te reik:

UITVOER sp_GetInventory 'FL'

Die New York-pakhuisbestuurder kan dieselfde gestoor prosedure gebruik om toegang tot die gebied se voorraad te verkry:

UITVOER sp_GetInventory 'NY'

Toegestaan, dit is 'n eenvoudige voorbeeld, maar die voordele van abstraksie kan hier gesien word. Die pakhuisbestuurder hoef nie SQL of die innerlike werking van die prosedure te verstaan ​​nie. Uit 'n prestasieperspektief werk die gestoor prosedure wonders. Die SQL Server skep een uitvoeringsplan een keer en herutileer dit deur die toepaslike parameters op die uitvoeringstyd in te voer.

Noudat jy die voordele van gestoorde prosedures geleer het, kom daar uit en gebruik dit.

Probeer 'n paar voorbeelde en meet die prestasieverbeterings wat jy behaal het - jy sal verbaas wees!

Voorraad tabel

ID produk Warehouse hoeveelheid
142 Groenbone NY 100
214 Ertjies FL 200
825 koring NY 140
512 bone NY 180
491 tamaties FL 80
379 waatlemoen FL 85