Skip to main content

Membuat Prosedur Tersimpan untuk Server SQL Anda

Stored procedures in sql server Part 18 (Maret 2025)

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

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:

  • Pengerjaan yang dikompilasi: SQL Server mengkompilasi setiap prosedur yang tersimpan satu kali dan kemudian menggunakan kembali rencana eksekusi. Ini menghasilkan peningkatan kinerja yang luar biasa ketika prosedur yang tersimpan dipanggil berulang kali.
  • Mengurangi kunjungan klien / server: Jika bandwidth jaringan menjadi perhatian di lingkungan Anda, Anda akan senang mengetahui bahwa prosedur yang tersimpan dapat mengurangi query SQL panjang ke satu baris yang ditransmisikan melalui kabel.
  • Efisien penggunaan kembali kode dan abstraksi pemrograman: Prosedur yang tersimpan dapat digunakan oleh banyak pengguna dan program klien. Jika Anda memanfaatkannya secara terencana, Anda akan menemukan siklus pengembangan membutuhkan waktu lebih sedikit.
  • Kontrol keamanan yang ditingkatkan: Anda dapat memberikan izin kepada pengguna untuk menjalankan prosedur tersimpan secara terpisah dari izin tabel yang mendasari.

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, KuantitasDARI InventarisasiDI 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)SEBAGAIPILIH Produk, KuantitasDARI InventarisasiDI 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

IDProdukGudangKuantitas
142Kacang hijauNY100
214Kacang polongFL200
825JagungNY140
512kacang limaNY180
491TomatFL80
379SemangkaFL85