SQL Server Stored Procedures

Prosedur Tersimpan Memberikan Manfaat Efisiensi dan Keamanan Tinggi

Microsoft SQL Server menyediakan mekanisme prosedur yang tersimpan untuk menyederhanakan proses pengembangan basis data dengan mengelompokkan pernyataan Transact-SQL ke dalam blok yang dapat dikelola. Prosedur yang tersimpan diapresiasi oleh sebagian besar pengembang SQL Server yang menemukan manfaat efisiensi dan keamanan yang mereka hasilkan merupakan investasi awal yang tepat waktu.

Manfaat Menggunakan Stored Procedures

Mengapa pengembang harus menggunakan prosedur yang tersimpan?

Berikut adalah manfaat utama teknologi ini:

Prosedur yang tersimpan serupa dengan fungsi yang ditentukan pengguna, tetapi ada perbedaan halus.

Struktur

Prosedur yang tersimpan mirip dengan konstruksi yang terlihat dalam bahasa pemrograman lainnya.

Mereka menerima data dalam bentuk parameter input yang ditentukan pada waktu eksekusi. Parameter input ini (jika diterapkan) digunakan dalam pelaksanaan serangkaian pernyataan yang menghasilkan beberapa hasil. Hasil ini dikembalikan ke lingkungan panggilan melalui penggunaan recordset, parameter output dan kode kembali.

Itu mungkin terdengar seperti suap, tetapi Anda akan menemukan bahwa prosedur yang tersimpan sebenarnya cukup sederhana.

Contoh

Mari kita lihat contoh praktis yang terkait dengan inventaris bernama tabel yang ditampilkan di bagian bawah halaman ini. Informasi ini diperbarui secara real time, dan manajer gudang terus-menerus memeriksa tingkat produk yang disimpan di gudang mereka dan tersedia untuk pengiriman. Di masa lalu, setiap pengelola akan menjalankan kueri yang serupa dengan yang berikut:

PILIH Produk, Kuantitas
DARI Inventarisasi
DI MANA Gudang = 'FL'

Ini mengakibatkan kinerja tidak efisien di SQL Server. Setiap kali seorang manajer gudang mengeksekusi query, server database terpaksa mengkompilasi ulang query dan mengeksekusinya dari awal. Ini juga mengharuskan manajer gudang untuk memiliki pengetahuan tentang SQL dan izin yang sesuai untuk mengakses informasi tabel.

Sebaliknya, prosesnya dapat disederhanakan melalui penggunaan prosedur yang tersimpan. Berikut kode untuk prosedur yang disebut sp_GetInventory yang mengambil level inventaris untuk gudang tertentu.

BUAT PROSEDUR sp_GetInventory
@location varchar (10)
SEBAGAI
PILIH Produk, Kuantitas
DARI Inventarisasi
DI MANA Gudang = @lokasi

Manajer gudang Florida kemudian dapat mengakses tingkat persediaan dengan mengeluarkan perintah:

EXECUTE sp_GetInventory 'FL'

Manajer gudang New York dapat menggunakan prosedur tersimpan yang sama untuk mengakses inventaris area tersebut:

EXECUTE sp_GetInventory 'NY'

Memang, ini adalah contoh sederhana, tetapi manfaat abstraksi dapat dilihat di sini. Manajer gudang tidak perlu memahami SQL atau cara kerja bagian dalam prosedur. Dari perspektif kinerja, prosedur yang disimpan bekerja keajaiban. SQL Server membuat rencana eksekusi sekali dan kemudian mengaktifkan kembali dengan memasukkan parameter yang tepat pada waktu eksekusi.

Sekarang setelah Anda mempelajari manfaat dari prosedur yang tersimpan, keluarlah dan gunakanlah.

Coba beberapa contoh dan ukur peningkatan kinerja yang dicapai — Anda akan kagum!

Tabel Inventaris

ID Produk Gudang Kuantitas
142 Kacang hijau NY 100
214 Kacang polong FL 200
825 Jagung NY 140
512 kacang lima NY 180
491 Tomat FL 80
379 Semangka FL 85