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. Floridan varastonhoitaja voi sitten käyttää varastointitasoja antamalla komennon: New Yorkin varastonhoitaja voi käyttää samaa tallennettua menettelytapaa kyseisen alueen mainosjakauman käyttämiseen: 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! InventaatiotaulukkoLUOTTAA MENETTELY sp_GetInventory@location varchar (10)KUTENSELECT tuote, määräFROM InventoryWHERE Warehouse = @paikka
SUORITA sp_GetInventory 'FL'
SUORITA sp_GetInventory "NY"
ID Tuote Varasto Määrä 142 Vihreät pavut New York 100 214 herneet FL 200 825 Maissi New York 140 512 limapavut New York 180 491 tomaatit FL 80 379 Vesimeloni FL 85