Skip to main content

Paglikha ng Naka-imbak na Pamamaraan para sa Iyong SQL Server

Stored procedures in sql server Part 18 (Abril 2025)

Stored procedures in sql server Part 18 (Abril 2025)
Anonim

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.

Gumawa ng sp_GetInventory@location varchar (10)ASPUMILI NG Produkto, DamiMULA SA ImbentaryoSAAN 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

IDProduktoBodegaDami
142Green beansNY100
214Mga gisantesFL200
825MaisNY140
512Lima beansNY180
491Mga kamatisFL80
379PakwanFL85