Skip to main content

Ustvarjanje shranjenih procedur za vaš SQL Server

Anonim

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.

PRIPRAVA POSTOPEK sp_GetInventory@ location varchar (10)ASIZBERI izdelek, količinoIZ inventarjaKJE 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

IDIzdelekSkladiščeKoličina
142Stročji fižolNY100
214GrahFL200
825KoruzaNY140
512Limski fižolNY180
491ParadižnikFL80
379LubenicaFL85