Skip to main content

SQL Serverin tallennettujen menettelyjen luominen

What is Database & SQL? (Saattaa 2024)

What is Database & SQL? (Saattaa 2024)
Anonim

Microsoft SQL Server tarjoaa tallennetun menettelymekanismin tietokannan kehittämisprosessin yksinkertaistamiseksi ryhmittelemällä Transact-SQL-käskyt hallittaviksi lohkoiksi. Useimmat SQL Server -kehittäjät arvostavat tallennettuja menettelytapoja, jotka löytävät tehokkuutensa ja turvallisuutensa, jotka he ansaitsevat.

Edut tallennettujen menettelyjen käyttämisestä

Miksi kehittäjä käyttää tallennettuja menettelyjä?

Tässä ovat tämän teknologian keskeiset hyödyt:

  • Esiohjelmoitu toteutus: SQL Server kokoaa jokaisen tallennetun menettelyn kerran ja käyttää uudelleen toteutussuunnitelmaa uudelleen. Tämä johtaa valtavaan suorituskykyyn, kun tallennettuja toimintoja kutsutaan toistuvasti.
  • Vähennetty asiakas / palvelinliikenne: Jos verkkokaistanleveys on huolestuttava ympäristössänne, voit mielestäsi tietää, että tallennetut menettelyt voivat vähentää pitkiä SQL-kyselyjä yhdelle riville, joka lähetetään langan yli.
  • Koodin tehokas uudelleenkäyttö ja ohjelmoinnin abstraktio: Useita käyttäjiä ja asiakasohjelmia voivat käyttää tallennettuja toimintoja. Jos käytät niitä suunnitellulla tavalla, kehitysohjelma vie vähemmän aikaa.
  • Parannetut suojausasetukset: Voit myöntää käyttäjille oikeudet suorittaa tallennettu menettely riippumatta taustalla olevan taulukon käyttöoikeuksista.

Tallennetut menettelyt ovat samanlaisia ​​kuin käyttäjäkohtaiset toiminnot, mutta hienovaraisia ​​eroja on.

Rakenne

Tallennetut menettelyt ovat samanlaisia ​​kuin muissa ohjelmointikieleissä olevat rakenteet.

He hyväksyvät datan syöttöparametrien muodossa, jotka määritetään toteutusaikana. Nämä syöttöparametrit (jos ne on toteutettu) hyödynnetään sellaisten lausumien toteutuksessa, jotka tuottavat jonkin tuloksen. Tämä tulos palautetaan kutsuvalle ympäristölle käyttämällä rekisteriä, tuotosparametreja ja palautuskoodia.

Tämä saattaa kuulostaa suupala, mutta huomaat, että tallennetut menettelyt ovat varsin yksinkertaisia.

esimerkki

Katsotaanpa käytännön esimerkki, joka liittyy tämän sivun alaosassa näkyvään taulukkoon nimeltä mainosjakauma. Nämä tiedot päivitetään reaaliaikaisesti, ja varastonhoitaja tarkkailee jatkuvasti varastoissaan varastoituja tuotteita, jotka ovat käytettävissä toimitettavaksi. Aiemmin jokainen johtaja suoritti kyselyjä, jotka olivat samankaltaisia ​​kuin seuraavat:

SELECT tuote, määräFROM InventoryWHERE Warehouse = 'FL'

Tämä johti tehottomaan suorituskykyyn SQL Serverissa. Aina kun varastopäällikkö suoritti kyselyn, tietokantapalvelin joutui kääntämään kyselyn uudelleen ja suorittamalla se tyhjästä. Se edellytti myös varastojohtajan tietävän SQL: stä ja asianmukaisista käyttöoikeuksista pöytätiedon käyttämiseen.Sen sijaan prosessia voidaan yksinkertaistaa tallennetun menettelyn avulla. Tässä on menettelyn koodi nimeltä sp_GetInventory, joka noutaa tietyn varaston inventointitasot.

LUOTTAA MENETTELY sp_GetInventory@location varchar (10)KUTENSELECT tuote, määräFROM InventoryWHERE Warehouse = @paikka

Floridan varastonhoitaja voi sitten käyttää varastointitasoja antamalla komennon:

SUORITA sp_GetInventory 'FL'

New Yorkin varastonhoitaja voi käyttää samaa tallennettua menettelytapaa kyseisen alueen mainosjakauman käyttämiseen:

SUORITA sp_GetInventory "NY"

Hyvä esimerkki, tämä on yksinkertainen esimerkki, mutta abstraktin edut ovat nähtävissä täällä. Varastonhoitaja ei tarvitse ymmärtää SQL: n tai menettelyn sisäistä toimintaa. Suorituskyvyn näkökulmasta tallennettu menettely toimii ihmeinä. SQL Server luo toteutussuunnitelman kerran ja käyttää sitä uudestaan ​​kytkemällä sopivat parametrit suoritusaikaan.Nyt kun olet oppinut tallennettujen menettelytapojen hyödyt, pääset sinne ja käytä niitä.

Kokeile muutamia esimerkkejä ja mittaa saavutettuja suorituskyvyn parannuksia - tulet hämmästymään!

Inventaatiotaulukko

IDTuoteVarastoMäärä
142Vihreät pavutNew York100
214herneetFL200
825MaissiNew York140
512limapavutNew York180
491tomaatitFL80
379VesimeloniFL85