Saklanan prosedurlar Yüksək effektivliyə və təhlükəsizliyə üstünlük verir
Microsoft SQL Server, Transact-SQL ifadələrini idarə olunan bloklara qruplaşdırmaqla verilənlər bazasının inkişafı prosesini asanlaşdırmaq üçün saxlanılan prosedur mexanizmini təmin edir. Saxlanılan prosedurlar, verdikləri səmərəliliyi və təhlükəsizlik faydalarını tapan ən çox SQL Server developers tərəfindən təqdir edilir və vaxt keçdikcə sərmayə qoymağa layiqdir.
Saxlanan prosedurların istifadə edilməsinin faydaları
Niyə bir geliştirici saxlanılan prosedurları istifadə etməlidir?
İşdə bu texnologiyanın əsas faydaları:
- Əvvəlcədən tərtib edilmiş icra: SQL Server hər bir saxlanılan proseduru bir dəfə tərtib edir və sonra icra planını yenidən işləyir. Saxlanılan proseduralar təkrarlanan çağırılarkən bu böyük performans artımına səbəb olur.
- Müştəri / server trafikini azaldar : şəbəkə bantı ətrafınızdakı bir narahatlıq varsa, saxlanan prosedurlar tel üzərində ötürülən bir sətirə uzun SQL sorgularını azalda biləcəyindən xəbərdar olacaqsınız.
- Kodun səmərəli təkrarlanması və proqramlaşdırma soyudulması: Saxlanılan prosedurlar birdən çox istifadəçi və müştəri proqramları tərəfindən istifadə edilə bilər. Onları planlaşdırılmış şəkildə istifadə edirsinizsə, inkişaf dövrünün daha az vaxt tələb etdiyini görürsünüz.
- Ətraflı təhlükəsizlik nəzarətləri: Siz istifadəçilərə əsaslı verilənlər bazası icazələrindən asılı olaraq saxlanılan bir prosedurun icrasına icazə verə bilərsiniz.
Saxlanılan prosedurlar istifadəçi funksiyalarına bənzəyir, lakin incə fərqlər var.
Quruluş
Saxlanılmış prosedurlar digər proqramlaşdırma dillərində görülən konstruksiyalara bənzəyir.
Onlar icra vaxtında göstərilən giriş parametrləri şəklində məlumatları qəbul edirlər. Bu giriş parametrləri (tətbiq olunarsa) bəzi nəticələr çıxaran bir sıra ifadələrin icrasında istifadə olunur. Bu nəticə bir qeyd qeydi, çıxış parametrləri və bir qaytarma kodu istifadə etməklə zəng mühitinə qaytarılır.
Bu ağız kimi səslənə bilər, amma saxta prosedurların əslində olduqca sadə olduğunu görürsünüz.
Misal
Bu səhifənin altındakı göstərilən inventarın adı ilə bağlı praktik bir nümunəyə nəzər salaq. Bu məlumatlar real vaxtda yenilənir və anbar menecerləri daim anbarlarında saxlanılan məhsulların səviyyəsini yoxlayırlar və göndərilirlər. Keçmişdə hər menecer aşağıdakılara bənzər sorguları davam etdirir:
SEÇİN Məhsul, Miqdarı
İnventarlaşdırma
WHERE Warehouse = 'FL'
Bu, SQL Server-da effektiv olmayan nəticələrə gətirib çıxardı. Bir anbar müdirinin sorguyu hər dəfə yerinə yetirdikləri zaman verilənlər bazası server sorguyu yeniden derlemeye və sıfırdan yürütmeye məcbur edildi. Bundan əlavə, anbar müdirinin SQL məlumatları və cədvəl məlumatlarına daxil olmaq üçün müvafiq icazələrin olması tələb olunur.
Bunun əvəzində proses saxlanılan bir prosedurun istifadəsi ilə sadələşdirilə bilər. Verilən bir anbar üçün inventar səviyyələrini alan sp_GetInventory adlı prosedurun kodu.
PROQRAMI yaradın sp_GetInventory
Boş yer (10)
AS
SEÇİN Məhsul, Miqdarı
İnventarlaşdırma
WHERE Warehouse = @ yerləşmə
Florida əmanət meneceri əmr verməklə inventar səviyyələrinə daxil ola bilər:
EXECUTE sp_GetInventory 'FL'
New York depo meneceri həmin ərazinin inventarına daxil olmaq üçün eyni saxta prosedurdan istifadə edə bilər:
EXECUTE sp_GetInventory 'NY'
Təbii ki, bu sadə bir nümunədir, amma abstraksiyanın faydaları burada görünə bilər. Anbar meneceri SQL-i və ya prosedurun daxili işini anlamamağa ehtiyac yoxdur. Performans perspektivindən saxlanan prosedurlar möcüzələr göstərir. SQL Server, icra planını bir dəfə yaradır və sonra müvafiq parametrləri yerinə yetirərkən onu yenidən işləyir.
Saxlanılan prosedurların faydalarını öyrəndikdən sonra, oradan çıxın və istifadə edin.
Bir neçə nümunəni nəzərdən keçirin və əldə olunan performansın ölçülməsini ölçün - heyran qalacaqsınız!
İnventarlaşdırma Cədvəli
ID | Məhsul | Anbar | Miqdarı |
142 | Yaşıl lobya | NY | 100 |
214 | Noxud | FL | 200 |
825 | Qarğıdalı | NY | 140 |
512 | Lima paxlası | NY | 180 |
491 | Pomidor | FL | 80 |
379 | Qarpız | FL | 85 |