• By mezo
  • 08/03/2011

SQL _ Stored Procedure

SQL _ Stored Procedure

SQL _ Stored Procedure 600 545 mezo

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

1 comment

Comments are closed.

    Join our Newsletter

    We'll send you newsletters with news, tips & tricks. No spams here.