Mga Naka-imbak na Mga Programa Maghatid ng Mga Benepisyo sa Mataas na Kahusayan at Seguridad
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 pagpapatupad: SQL Server compiles bawat naka-imbak na pamamaraan minsan at pagkatapos ay reutilizes ang pagpapatupad plano. Nagreresulta ito sa napakalaking pagpapalakas ng pagganap kapag ang mga pamamaraan na naka-imbak ay tinatawag na paulit-ulit.
- Mas kaunting trapiko ng client / server: Kung ang bandwidth ng network ay isang pag-aalala sa iyong kapaligiran, maligaya mong malaman na ang mga naka-imbak na 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: Maaaring gamitin ang mga naka-imbak na pamamaraan sa pamamagitan 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 sa seguridad: Maaari mong bigyan ang mga gumagamit ng pahintulot na mag-execute ng naka-imbak na pamamaraan nang nakapag-iisa ng mga pinagbabatayan na mga pahintulot ng 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, Dami
MULA SA Imbentaryo
WHERE 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.
Gumawa ng sp_GetInventory
@location varchar (10)
AS
PUMILI NG Produkto, Dami
MULA SA Imbentaryo
SAAN Warehouse = @location
Ang tagapamahala ng warehouse ng Florida ay maaaring mag-access sa mga antas ng imbentaryo sa pamamagitan ng pagbibigay ng utos:
Execute sp_GetInventory 'FL'
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:
Execute sp_GetInventory 'NY'
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 Imbentaryo
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 |