Prosedur Tersimpan SQL Server

Prosedur Tersimpan Menyampaikan Manfaat Kecekapan Tinggi dan Keselamatan Tinggi

Microsoft SQL Server menyediakan mekanisme prosedur tersimpan untuk mempermudah proses pembangunan pangkalan data dengan mengumpulkan penyataan Transact-SQL ke dalam blok yang boleh diurus. Prosedur yang disusun dihargai oleh kebanyakan pemaju SQL Server yang mendapati kecekapan dan manfaat keselamatan yang mereka peroleh adalah pelaburan yang tepat pada masanya.

Manfaat Menggunakan Prosedur Tersimpan

Mengapa pembangun menggunakan prosedur yang disimpan?

Inilah manfaat utama teknologi ini:

Prosedur yang disimpan adalah sama dengan fungsi yang ditentukan pengguna, tetapi terdapat perbezaan yang halus.

Struktur

Prosedur yang disimpan adalah serupa dengan pembinaan yang dilihat dalam bahasa pengaturcaraan lain.

Mereka menerima data dalam bentuk parameter input yang ditentukan pada masa pelaksanaan. Parameter input (jika dilaksanakan) digunakan dalam pelaksanaan beberapa pernyataan yang menghasilkan beberapa keputusan. Hasil ini dikembalikan kepada persekitaran panggil melalui penggunaan rekod, parameter output dan kod pemulangan.

Itu mungkin berbunyi seperti bersuara, tetapi anda akan mendapati bahawa prosedur yang disimpan sebenarnya agak mudah.

Contoh

Mari kita lihat contoh praktikal yang berkaitan dengan jadual yang dinamakan inventori yang ditunjukkan di bahagian bawah halaman ini. Maklumat ini dikemas kini dalam masa nyata, dan pengurus gudang sentiasa memeriksa tahap produk yang disimpan di gudang mereka dan tersedia untuk penghantaran. Pada masa lalu, setiap pengurus akan menjalankan pertanyaan yang serupa dengan yang berikut:

Pilih produk, kuantiti
DARI Inventori
WHERE Gudang = 'FL'

Ini mengakibatkan prestasi tidak cekap di SQL Server. Setiap kali seorang pengurus gudang menyempurnakan pertanyaan itu, pelayan pangkalan data dipaksa untuk mengkompilasi semula pertanyaan dan melaksanakannya dari awal. Ia juga memerlukan pengurus gudang untuk mempunyai pengetahuan tentang SQL dan keizinan yang sesuai untuk mengakses maklumat jadual.

Sebaliknya, proses itu dapat dipermudahkan melalui penggunaan prosedur tersimpan. Inilah kod untuk prosedur yang dipanggil sp_GetInventory yang mengambil semula tahap inventori untuk gudang tertentu.

LAKUKAN sp_GetInventory PROSEDUR
@location varchar (10)
AS
Pilih produk, kuantiti
DARI Inventori
WHERE Warehouse = @location

Pengurus gudang Florida kemudian boleh mengakses tahap inventori dengan mengeluarkan arahan:

EXECUTE sp_GetInventory 'FL'

Pengurus gudang New York boleh menggunakan prosedur tersimpan yang sama untuk mengakses inventori kawasan tersebut:

EXECUTE sp_GetInventory 'NY'

Memang, ini adalah contoh yang mudah, tetapi manfaat abstraksi dapat dilihat di sini. Pengurus gudang tidak perlu memahami SQL atau kerja dalaman prosedur. Dari perspektif prestasi, prosedur tersimpan berfungsi keajaiban. SQL Server mencipta pelan pelaksanaan sekali dan kemudian memulihkannya dengan memasukkan parameter yang bersesuaian pada masa pelaksanaan.

Sekarang anda telah mempelajari manfaat prosedur yang tersimpan, keluar di sana dan gunakannya.

Cuba beberapa contoh dan ukur peningkatan prestasi yang dicapai-anda akan kagum!

Jadual Inventori

ID Produk Gudang Kuantiti
142 Kacang hijau NY 100
214 Kacang polong FL 200
825 Jagung NY 140
512 kacang lima NY 180
491 Tomato FL 80
379 Tembikai FL 85