SQL Server tárolt eljárások

A tárolt eljárások nagy hatékonyságot és biztonságot nyújtanak

A Microsoft SQL Server a tárolt eljárási mechanizmust biztosítja az adatbázisfejlesztési folyamat egyszerűsítése érdekében, a Transact-SQL utasítások kezelhető blokkokba csoportosításával. A tárolt eljárások nagyra értékelik a legtöbb SQL Server fejlesztőt, akik megtalálják a hatékonyságot és a biztonsági előnyöket, amelyeket érnek, jól érzik az idő előtti befektetést.

A tárolt eljárások használata előnyei

Miért kell a fejlesztőnek tárolt eljárásokat használni?

Itt vannak a technológia legfontosabb előnyei:

A tárolt eljárások hasonlóak a felhasználó által meghatározott funkciókhoz, de vannak apró különbségek.

Szerkezet

A tárolt eljárások hasonlóak a többi programozási nyelv konstrukcióihoz.

Az adatokat beviteli paraméterek formájában fogadják el, amelyeket a végrehajtási időben határoztak meg. Ezeket a bemeneti paramétereket (ha implementálják) használják egy sor olyan állítás végrehajtására, amelyek bizonyos eredményeket hoznak. Ezt az eredményt visszaadja a hívó környezetnek egy rekordlettel, kimeneti paraméterekkel és visszatérési kóddal.

Ez úgy hangzik, mint egy falat, de azt fogja találni, hogy a tárolt eljárások valójában nagyon egyszerű.

Példa

Vessünk egy gyakorlati példát a lap alján feltüntetett táblára vonatkozó gyakorlati példával kapcsolatban. Ez az információ valós időben frissül, és a raktárkezelők folyamatosan ellenőrzik a raktárban tárolt és szállítandó termékek szintjét. A múltban minden kezelő az alábbiakhoz hasonló lekérdezéseket indított el:

SELECT termék, mennyiség
FROM Inventory
WHERE Raktár = 'FL'

Ez eredménytelenedést eredményezett az SQL Server-en. Minden alkalommal, amikor egy raktárkezelő végrehajtotta a lekérdezést, az adatbázis-kiszolgáló kénytelen volt újrafordítani a lekérdezést és végrehajtani azt a semmiből. Azt is megkövetelte, hogy a raktárkezelő ismerje meg az SQL-t és a megfelelő hozzáférési jogosultságokat a táblázatinformációkhoz.

Ehelyett a folyamat egy tárolt eljárás használatával egyszerűsíthető. Itt van egy sp_GetInventory nevű eljárás kódja, amely lekérdezi az adott raktár készletszintjét.

CREATE PROCEDURE sp_GetInventory
@ helymegosztás varchar (10)
MINT
SELECT termék, mennyiség
FROM Inventory
WHERE Raktár = @ helymeghatározás

A floridai raktárkezelő a következő parancs kiadásával elérheti a készletszinteket:

EXECUTE sp_GetInventory 'FL'

A New York-i raktárkezelő ugyanazt a tárolt eljárást alkalmazhatja a terület leltárának eléréséhez:

EXECUTE sp_GetInventory 'NY'

Nyilvánvaló, ez egy egyszerű példa, de az absztrakció előnyei itt láthatók. A raktárkezelőnek nem kell megértenie az SQL-t vagy az eljárás belső működését. A teljesítmény szempontjából a tárolt eljárás csodákat tesz. Az SQL Server létrehoz egy végrehajtási tervet, majd újra felhasználja a megfelelő paraméterek csatlakoztatásával a végrehajtás idején.

Most, hogy megtanulta a tárolt eljárások előnyeit, lépjen ki és használja őket.

Próbáljon ki néhány példát és mérje meg az elért teljesítménynöveléseket - csodálkozni fogsz!

Leltár táblázat

ID Termék Raktár Mennyiség
142 Zöldbab NY 100
214 borsó FL 200
825 Kukorica NY 140
512 Lima bab NY 180
491 paradicsom FL 80
379 Görögdinnye FL 85