Prosedur disimpen nganteurkeun Kekecapan High na Kaamanan Mangpaat
Microsoft SQL Server nyadiakeun mékanisme prosedur disimpen kana simplify proses ngembangkeun database ku ngagolongkeun pernyataan Transact-SQL kana blok manageable. prosedur disimpen keur ngaapresiasi ku paling pamekar SQL Server anu manggihan mangpaat efisiensi sarta kaamanan aranjeunna Fedi aya alusna sia investasi upfront dina jangka waktu.
Mangpaat Maké Prosedur Disimpen
Kunaon a pamakéan pamekar kedah disimpen prosedur?
Di dieu mangpaat konci téhnologi ieu:
- Palaksanaan Precompiled: SQL Server compiles unggal prosedur disimpen sakali lajeng reutilizes rencana eksekusi. Ieu ngakibatkeun dorongan kinerja tremendous lamun prosedur disimpen disebut sababaraha kali.
- Ngurangan lalulintas klien / server: Upami rubakpita jaringan mangrupakeun perhatian dina lingkungan, anjeun bakal jadi senang pikeun neuleuman éta prosedur disimpen bisa ngurangan queries SQL lila ka garis tunggal anu dikirimkeun ngaliwatan kawat.
- Dipake deui efisien kode jeung programming abstraksi: Disimpen prosedur bisa dipaké ku sababaraha pamaké sarta program klien. Lamun ngagunakeun éta di luhur rencanana, anjeun nimu siklus ngembangkeun butuh waktu.
- Enhanced kadali kaamanan: Anjeun tiasa ngabulkeun pamaké idin sangkan ngaéksekusi prosedur disimpen bebas tina kaayaan idin méja.
prosedur disimpen téh sarupa jeung fungsi-diartikeun pamaké, tapi aya béda halus.
struktur
prosedur disimpen aya nu sarupa jeung constructs ditempo dina basa programming lianna.
Aranjeunna nampa data di formulir parameter input nu dieusian di waktu palaksanaan. parameter input ieu (lamun dilaksanakeun) anu garapan dina dijalankeunnana runtuyan pernyataan anu ngahasilkeun sababaraha hasil. hasilna ieu balik ka lingkungan nélépon ngaliwatan pamakéan a recordset, parameter kaluaran jeung kode mulang.
Nu bisa disada kawas sahuap, tapi anjeun nimu nu prosedur disimpen sabenerna cukup basajan.
conto
Hayu urang nyandak katingal di hiji conto praktis patali tabel ngaranna inventory ditémbongkeun di handap kaca ieu. Inpo ieu diropéa sacara real waktu, sarta manajer gudang terus mariksa tingkat produk disimpen dina gudang maranéhanana sarta sadia keur kiriman. Baheula, unggal manajer bakal ngajalankeun queries sarupa di handap ieu:
MILIH Produk, kuantitas
FROM inventory
WHERE Gudang = 'FL'
Hal ieu nyababkeun kinerja episien di SQL Server. Unggal waktos a manajer gudang dieksekusi pamundut, nu server database kapaksa recompile query jeung ngaéksekusi eta ti scratch. Ogé diperlukeun dina manajer gudang keur gaduh pangaweruh ngeunaan SQL sarta idin luyu pikeun ngakses informasi méja.
Gantina, prosesna bisa disederhanakeun ngaliwatan pamakéan prosedur disimpen. Di dieu Éta kodeu keur prosedur disebut sp_GetInventory yén retrieves tingkat inventory pikeun gudang dibikeun.
Jieun prosedur sp_GetInventory
@location varchar (10)
AS
MILIH Produk, kuantitas
FROM inventory
WHERE Gudang = @location
The Florida manajer gudang lajeng bisa ngakses tingkat inventory ku ngaluarkeun sorana:
Hajar sp_GetInventory 'FL'
The New York manajer gudang tiasa make prosedur disimpen sami ngakses inventory nu aréa urang:
Hajar sp_GetInventory 'Ny'
Teges, ieu téh mangrupa conto basajan, tapi mangpaat abstraksi bisa ditempo di dieu. The manajer gudang teu kedah ngartos SQL atawa workings jero prosedur. Ti sudut pandang kinerja, prosedur disimpen jalan keajaiban. The SQL Server nyiptakeun hiji rencana eksekusi sakali lajeng reutilizes eta ku plugging dina parameter luyu dina waktu palaksanaan.
Ayeuna nu geus diajar mangpaat prosedur disimpen, meunang kaluar aya jeung dipake ku maranehna.
Coba sababaraha conto na ngukur perbaikan kinerja kahontal-you'll jadi amazed!
inventory Table
ID | barang | gudang | kuantitas |
142 | Kacang héjo | Ny | 100 |
214 | kacang | FL | 200 |
825 | Jagong | Ny | 140 |
512 | kacang Cianjur | Ny | 180 |
491 | Omat | FL | 80 |
379 | Samangka | FL | 85 |