Stored Procedures SQL Server üzerinde tutulan T-SQL ifadeleridir. Belli bir görevi yerine getirebilmek amacıyla yapılandırılırlar. SQL Server üzerinde derlenirler. Belirlediğimiz şartlara göre, program içinden çağrılarak kullanılırlar..
T-SQL deyimleriyle yazılan Store Procedures sadece ilk kez çalıştırıldıklarında derlenirler. Daha sonraki çalıştırma işlemlerinde derlenmezler. Bu sayede çalışmalarımızda hız kazanmış oluruz.
Birkaç çeşit stored procedure vardır. Bunlardan bazıları aşağıdaki gibidir:
System Stored Procedure: sp_ ön eki ile başlayan saklı yordamlar, SQL Server tarafından tanımlanmış saklı yordamlardır. master veritabanında saklanırlar. Bu Store Procedures, herhangi bir veritabanı üzerinde sistemle ilgili yönetimsel işlemler için kullanılırlar.
Extended Stored Procedure: Genişletilmiş anlamında xp_ ön eki ile başlayan bu saklı yordamlar, SQL Server’ın dışında çalıştırılan dinamik bağlantı kütüphaneleridir (DLL).
Local Stored Procedure: Biz de SQL Server üzerinde saklı yordamlar oluşturabiliyoruz. Bunlara da yerel store procedures denir. Oluşturduğumuz veritabanının Stored Procedure alt başlığı altında, yerel saklı yordamlarla ilgili, stored procedure ekleme, silme, düzeltme gibi işlemleri gerçekleştirebiliriz.
Oluşturduğumuz veya var olan saklı yordamları kullandığımızda birçok avantaj elde ederiz. Bunlardan bir kaçı dolayısıyla stored procedurekullanım sebepleri aşağıdaki gibidir:
- Store procedures, SQL Server’ a esneklik ve hız kazandırırlar.
- Önceden derlenmiş olduğu için, normal kullandığımız bir SQL sorgusunun tekrar tekrar çalıştırılmasına nazaran daha fazla performans elde etmemizi sağlarlar.
- SQL Server üzerinde tutulduğundan, yükü istemci tarafına değil de, sunucu tarafına yükleyerek programımızın performansını arttırır. (Tabi bu bir seçimdir. Sunucumuz güçlüyle bu seçimi tercih edebilirsiniz.)
- Bir kez yazılıp, tekrar tekrar kullanıldığı için modüler bir yapıda program geliştirmiş oluruz.
- Aynı T-SQL cümleciğini birden fazla yerde kullanacağımız zaman, bunu bir stored procedurehaline getirerek, kullanımını sadece ismini çağırma ile gerçekleştirebiliriz.
- Belirli girdi ve çıktı parametreleri olduğu için, saklı yordamların kullanımı ile güvenlik açısıdan kendimizi sağlama almış oluruz.
- Ağ trafiğini azaltır. İstemci tarafından birçok satıra sahip SQL komutunun sunucuya gitmesindense, sadece saklı yordamın adının sunucuya gitmesi ağı daha az meşgul etmiş olur.
Yerel Stored procedureOluşturma
İlk olarak Sql Server’i açarız. Daha sonra Query Analyzaer’i açarız ve aşağıdaki kodları yazarız. Aşağıdaki store procedure bize müşteriye ait siparişleri geri döndürür.
T-SQL deyimleriyle yazılan Store Procedures sadece ilk kez çalıştırıldıklarında derlenirler. Daha sonraki çalıştırma işlemlerinde derlenmezler. Bu sayede çalışmalarımızda hız kazanmış oluruz.
Birkaç çeşit stored procedure vardır. Bunlardan bazıları aşağıdaki gibidir:
System Stored Procedure: sp_ ön eki ile başlayan saklı yordamlar, SQL Server tarafından tanımlanmış saklı yordamlardır. master veritabanında saklanırlar. Bu Store Procedures, herhangi bir veritabanı üzerinde sistemle ilgili yönetimsel işlemler için kullanılırlar.
Extended Stored Procedure: Genişletilmiş anlamında xp_ ön eki ile başlayan bu saklı yordamlar, SQL Server’ın dışında çalıştırılan dinamik bağlantı kütüphaneleridir (DLL).
Local Stored Procedure: Biz de SQL Server üzerinde saklı yordamlar oluşturabiliyoruz. Bunlara da yerel store procedures denir. Oluşturduğumuz veritabanının Stored Procedure alt başlığı altında, yerel saklı yordamlarla ilgili, stored procedure ekleme, silme, düzeltme gibi işlemleri gerçekleştirebiliriz.
Oluşturduğumuz veya var olan saklı yordamları kullandığımızda birçok avantaj elde ederiz. Bunlardan bir kaçı dolayısıyla stored procedurekullanım sebepleri aşağıdaki gibidir:
- Store procedures, SQL Server’ a esneklik ve hız kazandırırlar.
- Önceden derlenmiş olduğu için, normal kullandığımız bir SQL sorgusunun tekrar tekrar çalıştırılmasına nazaran daha fazla performans elde etmemizi sağlarlar.
- SQL Server üzerinde tutulduğundan, yükü istemci tarafına değil de, sunucu tarafına yükleyerek programımızın performansını arttırır. (Tabi bu bir seçimdir. Sunucumuz güçlüyle bu seçimi tercih edebilirsiniz.)
- Bir kez yazılıp, tekrar tekrar kullanıldığı için modüler bir yapıda program geliştirmiş oluruz.
- Aynı T-SQL cümleciğini birden fazla yerde kullanacağımız zaman, bunu bir stored procedurehaline getirerek, kullanımını sadece ismini çağırma ile gerçekleştirebiliriz.
- Belirli girdi ve çıktı parametreleri olduğu için, saklı yordamların kullanımı ile güvenlik açısıdan kendimizi sağlama almış oluruz.
- Ağ trafiğini azaltır. İstemci tarafından birçok satıra sahip SQL komutunun sunucuya gitmesindense, sadece saklı yordamın adının sunucuya gitmesi ağı daha az meşgul etmiş olur.
Yerel Stored procedureOluşturma
İlk olarak Sql Server’i açarız. Daha sonra Query Analyzaer’i açarız ve aşağıdaki kodları yazarız. Aşağıdaki store procedure bize müşteriye ait siparişleri geri döndürür.
Store procedure ile yeni bir kayıt eklemek için aşağıdaki kodları yazabiliriz.
@CategoryName, @Description, @Picture adında dışarıdan 3 değer alır ve bu değerleri yeni bir kayıt olarak ekler. Bu store procedures’i çalıştırmak için yazmamız yeterli olacaktır.
Şimdi İsterseniz eklediğimiz bu kaydı silelim,
Silme işlemimizi de yaptıktan sonra artık güncelleme işlemini de yapabiliriz
Evet store prosedürlerin de sonuna geldik. Bir sonraki makalemizde görüşmek üzere.