Merhaba Değerli Arkadaşlar

Bu Yazımda sizlere büyük çaplı projelerde mutlaka kullanılması gereken Stored Procedure dan bahsedeceğim. Stored Procedure dilimizde Saklı Yordam,Prosedür gibi anlamlara gelir.Büyük çaplı projelerde mutlaka kullanılması gereken dedim çünkü Stored procedure lerin farkı ancak büyük çaplı performans ve etkinlik gerektiren projelerde ortaya çıkar. Stored procedure ü genel olarak tanımlamaya kalkarsak şöyle ifade edebiliriz: Database server ında tutulan ve ilk derlemeden sonra bir daha derlenmeye ihtiyaç duyulmayan SQL ifadeleridir. Diğer taraftan Uygulama katmanı yerine Veritabanı serverın da bulunan T-SQL ifadeleri diyebiliriz.

Stored procedure ler, diğer dillerde olduğu gibi parametreli parametresiz olarak çalışabildiği gibi bir değerde döndürebilmektedir. Uygulamalarda yazılırken SP olarak da adlandırılmaktadır. Veritabanı işlemlerinin tamamını aynı şekilde Stored procedure lerlede yapılabilmektedir. Stored procedure leri kullanmanın en güzel özelliklerinden birisi de belki de programlama dili kodları ile DML (Database manipulation Language) dediğimiz veritabanı işlemleri birbirinden ayrı tutulmasıdır. Ayrıca 1 defa yazıp derlediğiniz bir SP yi çok defa kullanabiliyor olmanızdır. Genel olarak Stored procedure lerin avantajlarını ve neden çok fazla kullanıldığını aşağıda maddeler halinde belirteceğim.

  • Stored Procedure ler, Database server da tutulduğu için çok hızlı çalışırlar bununda sebebi 1 defa yalnız derledikten sonra 1 daha derlenmeye ihtiyaç duymamalarıdır. Halbuki Uygulama katmanında yazmış olduğunuz SQL kodu her çağırmada tekrar tekrar derlenmek zorundadır. Buda büyük çaplı projelerde ve 1 den çok client a hizmet eden serverlar için büyük bir zaman kaybı demektir.
  • Network trafiği açısından mükemmel bir tasarruf sağlar.
  • SQL ifadelerine otomatik parametreleme sağlar. SQL ifadelerinin geçtiği yerdeki bütün parametreleri değiştirme yerine sadece SP içindeki parametreleri yada kuralları değiştirip istediğinizi gerçekleştirebilirsiniz.Buda uygulamanızı modüler olmasını sağlar uygulamaların karmaşıklığını giderir.
  • Stored procedure ler yazılırken programlama ifadelerine ek olarak (İf,while,for vb.) T-SQL komutlarını da kullanabilirsiniz.
  • Stored procedure ler sadece giriş ve çıkış parametreleri uygulama katmanında göründüğü için daha güvenilirdir. Database server ına erişim genelde kullanıcı ID si ve şifreyle gerçekleştiğini düşünürsek SP kullanmanın kodlarımız açısından bir güven unsuru teşkil etmiş olduğunu açıkça söyleyebiliriz.

 

Yukarıda aklıma gelen Stored procedure lerin avantajlarını saydım. Piyasa uygulamalarının neredeyse hiçbirinde normal sql kodlarını bulamazsınız hemen hemen hepsi veritabanı işlemlerini Stored Procedure ler aracılığıyla gerçekleştirmektedirler.Yukarıda da dediğim gibi tek bir noktadan yönetilip birden çok yerde kullanılabilme ayrıca başka kişilerin kolayca görememesi SP leri çok avantajlı kılmaktadır. Hele Network trafiği açısından düşündüğümüzde istemcinin göndermiş olduğu birçok satıra sahip SQL komutlarını server a yollamaktansa ve bunu her seferinde tekrar tekrar tekrar gerçeklemektense tek bir defa Stored Procedure in ismini sunucuya göndermek Network trafiğini çok rahatlaması anlamına gelir.

Genel amaçlı Stored Procedure lerin 4 çeşidi bulunmaktadır.

  1. Sistem Stored Procedure : Master veritabanında tutulan kullanımında sp_ prefixi kullanılan stored procedure lardır. Veritabanı üzerinde sistemle alakalı yönetimsel işlerde kullanılırlar.
  2. Kullanıcı Tabanlı Stored Procedure : Uygulamalarımız için kullandığımız sp lerdir.Bu sp leri çok rahat oluşturup silebilir ve değiştirebiliriz.
  3. Extended Stored Procedure :  Genelde .dll şeklinde derlenmiş olup Database Server ın işlevselliğini artıran bir çeşit stored procedure lerdir. Yalnız Master veritabanına eklenirler.
  4. CLR Stored Procedure : CLR ortamında herhangi bir dili kullanarak da stored procedure ler geliştirilen bir tür Stored procedure çeşididir.

Stored Procedure lerin çeşitlerini de saydıktan sonra bir yazımın daha sonuna geldiğimi belirtmek isterim. Son olarak şunu söylemek isterim ki kendimde bizzat büyük çaplı bir projede denedim gördüm ki Stored Procedure kullanmak çok önemli yönetimsel olarak,ağ trafiği olarak,hız olarak ,1 çok yerde kullanılabilmesi olarak çok muhteşem bir şey sizlerin de mutlaka uygulamalarınızda database işlemlerinizde bütün işlemleri Stored Procedure olarak yazmanızı şiddetle tavsiye ederim.

Mehmet Salih Deveci

Bilgisayar Mühendisi

Reklamlar
yorum
  1. Kodzilla dedi ki:

    Güzel bir yazı olmuş teşekkürler lakin örnek kullanım kodları da gösterseydiniz daha güzel olabilirdi. 🙂
    Elinize sağlık.

  2. abdullah dedi ki:

    ELLERİNE SAĞLIK HOCAM

  3. Ensar dedi ki:

    Özet ve akıcı bir yazı olmasına karşın örnek olmaması büyük eksiklik.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s