SQL yazıları paylaşmaya devam ediyorum, önceki makalelerde sql’de tablo oluşturup, c sharp derleyicimizde kodları yazıyorduk. Stored Procedure olayında, kodlarımızı SQL’in içerisine “stored procedure” oluşturarak yazıyoruz. “Ne farkeder, ha derleyiciye yazmışsın, ha sql’in içine yazmışsın?” derseniz yanılırsınız. Çünkü stored procedureler bize çok büyük avantajlar sağlıyor, özellikle performans konusunda. Bugün de stored procedure tanımından ve avantajlarından bahsedeceğim, daha sonra yine c sharp kodları ile birlikte, ekleme, güncelleme, silme gibi işlemlerin SP kodlarını paylaşacağım.
Öncelikle stored procedure tam olarak nedir, bundan başalayalım. SQL ile veritabanı kullanılan bir programı çalıştırdığımızda kodların yüklenmesi ve çalıştırılmasında iki farklı yöntem vardır; Yazdığımız program derleyicide çalıştıktan sonra SQL Server’a komutlar gönderir ve sql server bu komutlara göre sonuçlar üretir. Diğer yöntem ise, uygulamayı Stored Prosedür olarak SQL Server içinde oluştururuz ve uygulama SQL server içinde çalışarak ona göre sonuç verir. Yani Stored Prosedür, SQL Sever içinde daha önceden oluşturulmuş ve programın çalışması sırasında uygulama sayfasından gelen komutlara göre, SQL Server içinde çalışan ve sonuçları işleyen bir uygulamadır. Diğer bir deyişle, Stored Procedure, Microsoft SQL Server üzerinde barındırılan, T-SQL(Transact-SQL) komutları ile yazılan programın çalıştırılma anında derlenmesi ile bir sonuç üreten SQL Server bileşenidir. Veritabanında saklanan SQL ifadelerine benzetebiliriz. Stored procedureler
, c-c#-java programlama dillerindeki fonksiyonlar gibi parametre alabilir, if else gibi yapılar kullanılabilir. Direk veritabanı suncusunda saklandığı için daha hızlı çalışırlar, yüksek performans gösterirler.
Stored Procedure’lerin Avantajları:
- Stored prosedürü sadece bir kez oluşturmak yeterlidir. Oluşturduktan sonra istediğimiz kadar çağırabiliriz. Stored Procedure’lerde program kaynağına bağımlı kalmadan değişiklik yapmak mümkündür.
- Stored Procedure’ler sadece bir kez çalıştıkları için hız konusunda büyük avantaj sağlar. SQL kod kümesiyle yazılan program clientın her istendiğinde yeniden sql’e gönderildiği için program yavaş çalışır ve performansı düşürür. Stored Procedure’ler direk veritabanı içerisinde oluşturulduğu için hızlı çalışmaktadır.
- Stored Porcedure’ler Network trafiğini düşürür. Çok uzun bir Sql kodlarla yapılan işlemleri tek bir stored procedure ile yapılırsa, yüzlerce, hatta binlerce satırlık bir kod çöplüğüne göre tek bir SP, network trafiğinde çok daha az yer tutacaktır. Network bandwidth’inden tasarruf sağlar (daha az network bandwidth kaynak kullanımı)