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:
- Predprevajana izvedba: SQL Server enkrat samodejno zbira vsak shranjeni postopek in nato ponovno uporabi načrt izvedbe. To privede do izjemnega povečanja zmogljivosti, ko se večkrat pokličejo shranjeni postopki.
- Zmanjšan odjemalec / strežnik: Če je pasovno širino omrežja skrb v vašem okolju, boste z veseljem izvedeli, da shranjeni postopki lahko zmanjšajo dolge SQL poizvedbe v eno samo vrstico, ki se prenaša prek žice.
- Učinkovita ponovna uporaba kod in abstrakcija programov: shranjene postopke lahko uporabljajo več uporabnikov in odjemalski programi. Če jih uporabljate načrtovano, boste ugotovili, da razvojni cikel traja manj časa.
- Izboljšane varnostne kontrole: uporabnikom lahko dovolite, da izvedejo shranjeni postopek, neodvisno od dovoljenj spodaj.
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 |