Ang Microsoft SQL Server ay nagbibigay ng naka-imbak na mekanismo ng pamamaraan upang gawing simple ang proseso ng pag-unlad ng database sa pamamagitan ng pagpapangkat ng mga pahayag ng Transact-SQL sa mga mapapamahalaang mga bloke. Naka-imbak na mga pamamaraan ay pinapahalagahan ng karamihan sa mga developer ng SQL Server na nakakakita ng mga benepisyo at mga benepisyo sa seguridad na kanilang aanihin ay nagkakahalaga ng upfront investment sa oras.
Benepisyo ng Paggamit ng Naka-imbak na Pamamaraan
Bakit dapat gamitin ng developer ang mga nakaimbak na pamamaraan?
Narito ang mga pangunahing benepisyo ng teknolohiyang ito:
- Precompiled execution: Pinagsasama ng SQL Server ang bawat nakaimbak na pamamaraan minsan at pagkatapos ay muling ginagamit ang plano ng pagpapatupad. Nagreresulta ito sa napakalaking pagpapalakas ng pagganap kapag ang mga pamamaraan na naka-imbak ay tinatawag na paulit-ulit.
- Nabawasan ang trapiko ng client / server: Kung ang network bandwidth ay isang pag-aalala sa iyong kapaligiran, ikaw ay magiging masaya na malaman na ang mga naka-imbak na mga pamamaraan ay maaaring mabawasan ang mahabang mga query sa SQL sa isang solong linya na ipinadala sa ibabaw ng kawad.
- Mahusay na muling paggamit ng code at abstraction ng programming: Ang mga naka-imbak na mga pamamaraan ay maaaring gamitin ng maraming mga gumagamit at mga programa ng client. Kung gagamitin mo ang mga ito sa isang nakaplanong paraan, makikita mo ang cycle ng pag-unlad ay tumatagal ng mas kaunting oras.
- Pinahusay na mga kontrol ng seguridad: Maaari mong bigyan ang mga gumagamit ng pahintulot na mag-execute ng naka-imbak na pamamaraan nang nakapag-iisa ng mga pinagbabatayan ng mga pahintulot sa talahanayan
Ang mga naka-imbak na pamamaraan ay katulad ng mga function na tinukoy ng gumagamit, ngunit may mga banayad na pagkakaiba.
Istraktura
Ang mga nakaimbak na pamamaraan ay katulad ng mga construct na makikita sa iba pang mga programming language.
Tinatanggap nila ang data sa anyo ng mga parameter ng input na tinukoy sa oras ng pagpapatupad. Ang mga parameter ng input na ito (kung ipinatupad) ay ginagamit sa pagpapatupad ng isang serye ng mga pahayag na gumagawa ng ilang resulta. Ang resultang ito ay ibabalik sa kapaligiran ng pagtawag sa pamamagitan ng paggamit ng isang recordset, mga parameter ng output at isang return code.
Na maaaring tunog tulad ng isang katiting, ngunit makikita mo na ang naka-imbak na mga pamamaraan ay talagang medyo simple.
Halimbawa
Tingnan natin ang isang praktikal na halimbawa na may kaugnayan sa mesa na may pangalan na imbentaryo na ipinapakita sa ibaba ng pahinang ito. Ang impormasyon na ito ay na-update sa real time, at ang mga tagapangasiwa ng warehouse ay patuloy na sumusuri sa mga antas ng mga produkto na nakaimbak sa kanilang warehouse at magagamit para sa kargamento. Sa nakaraan, ang bawat tagapamahala ay tatakbo sa mga query katulad ng sumusunod:
PUMILI NG Produkto, DamiMULA SA ImbentaryoWHERE Warehouse = 'FL'
Nagresulta ito sa hindi mahusay na pagganap sa SQL Server. Sa bawat oras na isinagawa ng isang tagapangasiwa ng warehouse ang query, ang server ng database ay sapilitang muling mag-recompile ng query at isakatuparan ito mula sa simula. Kinailangan din nito ang manager ng warehouse na magkaroon ng kaalaman sa SQL at naaangkop na mga pahintulot upang ma-access ang impormasyon ng talahanayan.Sa halip, ang proseso ay maaaring gawing simple sa pamamagitan ng paggamit ng isang nakaimbak na pamamaraan. Narito ang code para sa isang pamamaraan na tinatawag na sp_GetInventory na nakukuha ang mga antas ng imbentaryo para sa isang binigay na bodega. Ang tagapamahala ng warehouse ng Florida ay maaaring mag-access sa mga antas ng imbentaryo sa pamamagitan ng pagbibigay ng utos: Ang manager ng bodega ng New York ay maaaring gumamit ng parehong pamamaraan na naka-imbak upang ma-access ang imbentaryo ng lugar na iyon: Totoo, ito ay isang simpleng halimbawa, ngunit ang mga benepisyo ng abstraction ay makikita dito. Ang manager ng warehouse ay hindi kailangang maunawaan ang SQL o ang mga panloob na gawain ng pamamaraan. Mula sa isang perspektibo sa pagganap, ang nakaimbak na pamamaraan ay gumagawa ng mga kababalaghan. Ang SQL Server ay lumilikha ng isang plano ng pagpapatupad ng isang beses at pagkatapos ay reutilizes ito sa pamamagitan ng plugging sa naaangkop na mga parameter sa oras ng pagpapatupad.Ngayon na natutunan mo ang mga benepisyo ng mga nakaimbak na pamamaraan, lumabas doon at gamitin ang mga ito. Subukan ang ilang mga halimbawa at sukatin ang mga pagpapahusay sa pagganap na nakamit-ikaw ay nagtaka nang labis! Talaan ng ImbentaryoGumawa ng sp_GetInventory@location varchar (10)ASPUMILI NG Produkto, DamiMULA SA ImbentaryoSAAN Warehouse = @location
Execute sp_GetInventory 'FL'
Execute sp_GetInventory 'NY'
ID Produkto Bodega Dami 142 Green beans NY 100 214 Mga gisantes FL 200 825 Mais NY 140 512 Lima beans NY 180 491 Mga kamatis FL 80 379 Pakwan FL 85