Alper ÇELİK

Bilgisayar Mühendisi

stored procedure(sp) kavramına giriş (5)

Siz bir tablodan satır getirmek istediğinizde, örneğin;
SELECT name FROM Customers WHERE Id = 5
şeklindeki sorgu her çalıştığında yeni bir "Execution Plan" üretilecektir. Laf lafı açsın ve bir Execution Plan üretildiğinde arka planda ne gibi çalışmalar olur buna bakalım:
* İlgili sorgunuzun söz dizimi(sentaksı) kontrol edilir,
* Sorgunuz compile edilir,
* Execution Plan üretilir.
yani yukardaki tablodan ilgili satırı döndürmek istediğimde bu işlemler bütünü her defasında tekrar edilecek demek oluyor bu.
    Oysa ki bu sorguyu SP haline getirdiğimde bir kez derleme yapılacak ve sonraki çalıştırmalarımda(execution) bana derlenmiş halini getirecek üstelik üretilmiş olan Execution Plan'da tekrar üretilmeyecek. Bu'da performansın artmasına sebep olacaktır haliyle..
Diğer faydaları:
Network trafiğini azaltır,
Kod kullanılabilirliğini sağlar yani bir tabloda ya da kolonda çıkabilecek muhtemel hatayı SP içersinde giderdiğinizde ilgili hata tüm SP lerde de giderildiğinden bu size oldukça kolaylık sağlayacaktır,
SP'den geriye tam sayısal bir değer döndürmek için return, başka tipde bir veri döndürmek için out parametreleri kullanılır,
Güvenlik ön plandadır yani bir tabloda herkesçe erişilmemesi gereken alanlar var ise bunun kullanıcı bazlı yetki verilmesi suretiyle düzeltilmesi sağlanabilir(bu yapıyı view ilede kurabilirsiniz),
SQL injection ataklarına karşı önleyici bir yapı sunar.  
 
Umarım faydalı bir yazı dizisi olmuştur. Sonraki makalelerimde görüşmek üzere, hepinize iyi çalışmalar dilerim.

Trigger Serisinin İlk Bölümüne Buradan Ulaşabilirsin

Trigger'lar özelleşmiş bir tür stored prosedürlerdir(SP).