Tarayıcınız JavaScript! desteklememektedir.

MSSql Stored Procedure Nedir? Neden Kullanilir?

Projelerimizde veritabani olmazsa olmazimizdir. Küçük-Orta-Büyük ölçekli farketmeksizin, bir uygulama yazmaya basladigimizda en çok önem verdigimiz konuarin basinda gelir. 

Tabii burada, dikkat edilmesi gereken noktalar var.

Ilk Senaryo;

Belirtilen kritere göre kayitlari görmek istiyoruz. Bu basit bir select sorgusu da olabilir, order by, group by, having bulunan kompleks bir sorgu da olabilir. Bu sorguyu C#, ASP.NET ya da VB'de çalistirmak istedigimizde, DataReader, DataAdapter gibi nesnelerden faydalaniriz. Buraya kadar hersey tamam. 

Sorunumuz su, ayni sorguyu bir kaç farkli yerde çalistirmak istersek, bu bizim için performans kaybina neden olur mu? Olur. Çünkü sorgu her seferinde yeniden derlenecek. Bazi projelerde ayni sorguyu ayni sayfa ya da form içerisinde birden fazla kez çalistirmak zorunda kalabiliriz ve bu genellikle olan birseydir.

Stored Procedure kullaniyor olsak, sorgumuz veritabaninda kayitli olacak ve sadece bir kere çalistirilacak. Biz istersen 50 kere kullanalim, performans olarak hiç bir kayip yasamayacagiz.

Ikinci Senaryo;

Sorgumuzu degistirmek isteyebiliriz, bu durumda, projemizin içerisinde teker teker degistirmemiz lazim. Bu da çok ciddi zaman kaybi. 
Oysa böyle durumlarda Stored Procedure kullaniyor olsak isimiz çok daha kolay olurdu. 

Nedir bu Stored Procedure?

Stored Procedure, (Türkçe karsiligi Sakli Yordam), Fonksiyon'a benzeyen ama Fonksiyon'dan çok daha farkli bir veritabani objesi olarak nitelendirilebilir. Fonksiyon'a benzeyen 2  yani var, (hatta ayni olan diyebiliriz)

  1. Bir kere olusturduktan sonra istedigimiz zaman kullanabiliyor olmamiz.
  2. Eger sorgumuzu degistirmek istersek tek bir yerden degistirmemiz yeterli oluyor. Istersek 50 farkli yerde kullanalim, bu yaptigimiz degisiklik tüm kullanimlarimizda geçerli oluyor.

Stored Procedure ile neler yapabiliriz? 

  • Stored Procedure ile parametreler verebiliriz.
  • Stored Procedure geriye deger döndürür.
  • Stored Procedure ile CRUD(Create,Retrieve,Update,Delete) islemlerini yapabiliriz. (Insert,Select,Update,Delete)
  • Stored Procedure ile herhangi bir CRUD islemini kosullara bagli yaptirabiliriz.Mesela, parametre olarak verdigimiz Kullanici Adi eger tabloda mevcutsa, kayit islemini yapma, eger mevcut degilse kayit islemini yap gibi bir çok islem yaptirabiliriz.

Olustururken, Syntax'i su sekilde;

Create Proc [Procedure Adi]
[Vermek istedigimiz parametreler, ek bilgiler]
begin
[Sorgu]
end

Yukaridaki genel tanimlama sekli,.

Bir sonraki makalemizde Stored Procedure ile alakali örnekler yapacagiz.

Kod'la kalin...