Merhaba arkadaşlar bu yazımızda Sql içersinde bulunan ve hayat kurtaran Stored Procedure konusuna değineceğiz.
Bir amaca ulaşmak için takip edilen yol ve yöntem tanımından yola çıkılarak, bir prosedür herhangi bir işlevi yerine getirebilmek için yazılan kodların bir paket içersinde tutulmuş halidir diyebiliriz.
Stored procedure kullanmanın bize sağladığı yararlardan kısaca bahsetmek gerekirse :
• Çalışırken bazı planlamaların doğru olarak yapılmasını sağlar ve tekrar tekrar kullanılabilir bir yapıdır.
• İçersine yazılan sorgulara parametrelendirme özelliği katar.
• Uygulamalar arasında kullanılabilir.
• Güvenli data giriş çıkış ve düzenlemesi sağlar.
• Daha az network bandwidth kaynak kullanımı sağlar.
• Job olarak tanımlanabilir ve schedule edilebilir.
• Database objelerine daha güvenli erişim olanağı tanır.
Stored procedure bileşenleri parçalara ayırır yani parsing işlemi gerçekleştirir.
Yani ilk olarak ; Veritabanı içersinde view table vb. nesnelere gönderme yapan referanslar varsa geçerli olup olmadıklarını (nesnenin ve iznin olup olmadığı) kontrol eder.Kontrollerden geçen SP nin adı sysobject tablosuna kodları ise syscomments tablosuna kaydedilir.
Bu işlemlerle birlikte derleme işlemi yapılır. Normalizasyon işlemleri olarak da anılan bu işlemler sonucunda, ağaç şeması elde edilir. Bu şema da sysprocedures tablosunda saklanır.
Stored Procedure herhangi bir anda çağrıldığında, ilk kez çalışıyorsa bu işlemler gerçekleştirilir. İlk defa çağrılmıyorsa, kontrol, sorgulama ağacı oluşturma işlemleri yapılmaz ve oldukça hızlı bir şekilde Stored Procedure’ün derlenmiş haliçalışır. Bundan dolayı Stored Procedure’ler derlenen nesnelerden biri olarak bilinir.
Stored Procedure Oluşturmak
CREATE PROC [ EDURE ] prosedür_adıAST-SQL ifadeleri |
Değişiklik Yapmak
ALTER PROC [EDURE] prosedür_adıAST-SQL ifadeleri |
Bir Stored Procedure’de değişiklik yapabilmek için önce kaynak kodunun alınması ve bir Query ekranına kopyalanıp düzenlenmesi gerekir.
Stored Procedure’ü Silmek
DROP PROC sahip.prosedür_adı |
Var olan bir Stored Procedure’ü silmek için DROP komutunu kullanmak gereklidir.
DROP komutundan sonra Stored Procedure’ün sahibinin adı ve Stored Procedure’ün adı yazılmalıdır.
Değer Alan Stored Procedure’ler
Stored Procedure’lerin daha etkin kullanılabilmesi ve işlevsel bir hale gelebilmesi için dışarıdan değer almalarına ihtiyaç duyulur. Bu nedenle girdi parametreleri (Input Parameter) kullanılır.
Değer Alıp-Veren Stored Procedure’ler
Değer alıp-veren stored procedure ler, query’den gönderilen değerleri alıp istenilen işleme tabi tuttuktan sonra elde edilen sonucu tekrar Query’e gönderen prosedürlerdir. Buişlem için OUTPUT parametresi kullanılır.
RETURN Deyimi
Prosedürden tek bir tamsayı değer döndürmek için bir başka seçenek olarak RETURN ifadesi kullanılabilir. Bu şekilde OUTPUT parametresini hem prosedür içinde hem de prosedürün çağrıldığı yerde tanımlamak zorunda kalınmadan doğrudan değer döndürülebilir.
Store Procedureler kısaca bu kadar…
Umarım yararlı olur.
Tekrar görüşmek üzere…
M.Zeki Osmancık
teşekürler hocam güzel bir anlatım olmuş elinize sağlık