Prosedur Disimpen Ngasilake Efisiensi Tinggi lan Keamanan Keamanan
Microsoft SQL Server nyedhiyakake mekanisme prosedur sing disimpen kanggo nggawe proses pangembangan basis data kanthi nglumpukke statements Transact-SQL menyang blok sing bisa diatur. Prosedur disimpen sing dihargai dening paling dikembangake dening SQL Server sing nemokake keuntungan lan kauntungan keamanan sing ditampa kanthi becik ing investasi ing wektu kasebut.
Keuntungan Nggunakake Prosedur Disimpen
Kenapa pangembang nggunakake prosedur sing disimpen?
Punika keuntungan utama teknologi iki:
- Eksekusi saderengipun: SQL Server nyusun saben prosedur ingkang disimpen saksampune lan banjur reutilizes rencana eksekusi. Iki nyebabake dorongan kinerja luar biasa nalika prosedur sing disimpen diarani bola-bali.
- Nimbulaké lalu lintas klien / server: Yen bandwidth jaringan dadi keprihatinan ing lingkungan sampeyan, sampeyan bakal seneng mangerteni manawa prosedur sing disimpen bisa ngurangi pitakon SQL sing panjang menyang baris sing dikirim liwat kabel.
- Efisiensi reuse kode lan abstraksi program: Prosedur sing disimpen bisa digunakake dening pirang-pirang kedhaftar lan program klien. Yen sampeyan nggunakake cara ngrancang, sampeyan bakal nemokake siklus pangembangan njupuk wektu kurang.
- Kontrol keamanan sing ditambahake: Sampeyan bisa menehi ijin pangguna kanggo ngeksekusi prosedur sing disimpen kanthi bebas saka ijin tabel sing ndasari.
Prosedur sing disusun mirip karo fungsi sing wis ditemtokake pengguna, nanging ana beda sing beda.
Struktur
Prosedur sing disusun mirip karo konstruksi sing katon ing basa pamrograman liyane.
Padha nampa data ing wangun parameter input sing ditemtokake ing wektu eksekusi. Parameter input kasebut (yen dipun ginakaken) dipunginakaken kangge nglampahi serangkaian pernyataan ingkang ngasilaken asil. Hasil kasebut dikembalikan menyang lingkungan panggilane kanthi nggunakake data recordset, parameter output lan kode bali.
Sing bisa uga kaya swara, nanging sampeyan bakal nemokake prosedur sing disimpen bener-bener prasaja.
Conto
Ayo goleki conto praktis sing ana hubungane karo tabel sing dijenengi persediaan sing dituduhake ing ngisor kaca iki. Informasi iki dianyari ing wektu nyata, lan manajer gudang tansah mriksa tingkat produk sing disimpen ing warehouse lan kasedhiya kanggo kiriman. Ing sasi kepungkur, saben manajer bakal mbukak pitakon kaya ing ngisor iki:
Pilih Product, Quantity
Saka inventarisasi
WHERE Warehouse = 'FL'
Iki ngasilake ora efisien kinerja ing Server SQL. Saben manajer gudang dieksekusi, server basis data dipeksa kanggo nganalisa query lan nglakokna saka awal. Sampeyan uga kudu manajer gudang duwe kawruh babagan SQL lan ijin sing cocok kanggo ngakses informasi tabel.
Nanging, proses bisa disederhanakake kanthi nggunakake prosedur sing disimpen. Punika kode kangge prosedur ingkang dipunsebat sp_GetInventory ingkang nampi tingkat persediaan kangge warehouse.
Nggawe sp_GetInventory PROSEDUR
@location varchar (10)
AS
Pilih Product, Quantity
Saka inventarisasi
WHERE Warehouse = @location
Manajer gudang Florida banjur bisa ngakses tingkat persediaan kanthi nerbitake printah:
EXECUTE sp_GetInventory 'FL'
Manajer gudang New York bisa nggunakake prosedur sing disimpen sing padha kanggo ngakses persediaan wilayah kasebut:
EXECUTE sp_GetInventory 'NY'
Dadi, iki minangka conto prasaja, nanging keuntungan abstraksi bisa dideleng ing kene. Manajer gudang ora perlu ngerti SQL utawa cara kerja batin. Saka perspektif kinerja, prosedur sing disimpen bisa gawé keajaiban. Ing SQL Server nggawe rencana eksekusi sapisan banjur banjur reutilizes kanthi plugging ing paramèter sing cocok ing wektu execution.
Saiki sampeyan wis sinau manfaat prosedur sing disimpen, metu lan gunakake.
Coba conto sawetara lan ngukur paningkatan kinerja sing bisa diraih-sampeyan bakal kaget!
Tabel Persediaan
ID | Produk | Warehouse | Jumlah |
142 | Kacang hijau | NY | 100 |
214 | Kacang polong | FL | 200 |
825 | Jagung | NY | 140 |
512 | Kacang buncis | NY | 180 |
491 | Tomat | FL | 80 |
379 | Watermelon | FL | 85 |