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:
- Prednastavljena izvedba: SQL Server zbira vsak shranjeni postopek enkrat in nato ponovno uporabi načrt izvedbe. To privede do izjemnega povečanja zmogljivosti, ko se večkrat pokličejo shranjeni postopki.
- Zmanjšan promet odjemalca / strežnika: Če je omrežna pasovna širina skrb v vašem okolju, boste z veseljem izvedeli, da lahko shranjeni postopki zmanjšajo dolge SQL poizvedbe v eno samo vrstico, ki se prenaša prek žice.
- Učinkovita ponovna uporaba kodiranja in programiranja: Shranjene postopke lahko uporabljajo več uporabnikov in programov odjemalcev. Če jih uporabljate načrtovano, boste ugotovili, da razvojni cikel traja manj časa.
- Izboljšani varnostni nadzor: Uporabnikom lahko dovolite, da izvedejo shranjeni postopek, neodvisno od dovoljenj za tabele.
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činoIZ inventarjaKJE 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. Upravitelj skladišča Florida nato lahko dostopa do nivojev inventarja z izdajo ukaza: Upravitelj skladišča v New Yorku lahko za dostop do popisa tega območja uporablja isti shranjeni postopek: 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 inventarjaPRIPRAVA POSTOPEK sp_GetInventory@ location varchar (10)ASIZBERI izdelek, količinoIZ inventarjaKJE Skladišče = @lokacija
EXECUTE sp_GetInventory "FL"
EXECUTE sp_GetInventory "NY"
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