stored Procedure - Alper Talha Karadeniz

advertisement
 Stored Procedure kısaca SQL sorgularını isteğimize
göre hazırlayıp kullanıma hazır veri tabanı nesnesine
çeviren bir araçtır.
 Stored Procedure , Türkçeye saklı yordam olarak
çevrilmiştir.
 Veri tabanı sunucuları içerisinde saklanır. Bu önemli
bir performans kazancı anlamına gelir.
 Stored Procedure bize güvenli bir yapı sunarlar.
 Değişiklik yapmaya elverişli yapılardır.
 Stored Procedure güvenlik katmanı olarak da
kullanılabilir.
 Bir veri tabanını başka bir yere taşıdığımız zaman SP’leri de
taşımış oluruz.
 Bir prosedür, başka bir prosedür içerisinde çağrılabilir.
 Bir programlama dilindeki fonksiyonlar gibi parametre
alabilirler. Bu parametrelere göre bir sorgu çalıştırıp cevap
gönderilebilir.
 Bir SQL komutu çağrıldığında derleme,
ayrıştırma ve çalıştırma aşamalarından geçmektedir.
 Bir stored procedure ilk çalıştırıldığı zaman derlenir. Bir
daha çalıştırılınca derlenmeden çalışırlar.
 Stored Procedure'ler önceden derlenmiş olduğu için ,
normal kullandığımız bir SQL sorgusunda olduğu gibi bu 3
aşamadan geçmez, bu özelliği sayesinde programımızın
performansı artmaktadır ve ağ trafiğini de azaltmış oluruz.
 İ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.
 Bir kez yazıp tekrar ve tekrar kullandığımız için modüler
bir yapıda program geliştirilmesi sağlanır.
 Stored Procedure'lerin diğer bir özelliği ise programlama
deyimleri içermesidir. if, next, set vs..
 Stored Procedure'ler sadece giriş ve çıkış parametreleri
uygulama katmanında göründüğü için daha güvenilirdir.
Stored Procedure’in faydalarını şu şekilde
özetleyebiliriz.
 Hızlı çalışırlar.
 Güvenli bir yapı sergilerler.
 Önemli performans kazancı sağlarlar.
 Bir SQL sorgusunun sonuç vermesi için gereken bazı
işlemleri yapmaya gerek olmaması istemci yükünü
azaltmasını sağlar.
 Network (ağ) trafiğinin azalmasını sağlar.
Stored procedurelerin kullanıldığı başlıca alanlar :
Tablodan veri çekme
b. Tablodan veri silme
c. Tabloya veri ekleme
d. Tablodaki veriyi güncelleme
a.
 Stored Procedure ile veri ekleme(insert) işlemini
gerçekleştirelim.
Create procedure sp_AdminEkle
(
@AdiSoyadi nvarchar(100),
@KullaniciAdi nvarchar(100),
@Sifre nvarchar(max)
)
As
Begin
Insert Into Adminler (AdiSoyadi, KullaniciAdi, Sifre)
values (@AdiSoyadi, @KullaniciAdi, @Sifre)
End
exec sp_AdminEkle Alper Karadeniz', sa', '123'
 Stored Procedure ile veri ekleme(insert) işlemini
gerçekleştirelim.
 Tüm müsteri kayitlarini döndüren Stored Procedure
CREATE PROCEDURE sp_Musteri_ReadAll
AS
BEGIN
SET NOCOUNT ON;
SELECT * from MUSTERI
END
GO
EXEC dbo.sp_Musteri_ReadAll
Store Procedure c# ile kayıt ekleme örnekleri aşağıda ki linkte
mevcuttur.
http://ibrahimozby.blogspot.com.tr/2008/10/stored-procedurekullanarak-kayt-ekleme.html
ALTER PROCEDURE MakaleDenemeInsert
AS
SELECT CompanyName,Phone FROM Suppliers
WHERE ContactTitle='Sales Representative'
--burası eskiden (sales managerdı)
/* Bu örnekte, görüldüğü gibi WHERE ifadesindeki
ContactTitle' 'Sales Representative' olarak
değiştirdik. */
CREATE PROCEDURE [Delete Category]
@kid int
AS
DELETE FROM Categories WHERE CategoryID=@kid
GO
Görüldüğü gibi burada son derece kolay bir T-SQL(
Transact SQL ) cümleciği var. Burada yapılan işlem aslında
@kid parametresine geçilen değeri CategoryID alanı ile
eşleştirmek. Eğer bu parametre değerine karşılık gelen bir
CategoryID değeri varsa; bu değeri taşıyan satır Categories
isimli tablodan silinecektir.
 Turgut Özseven-Veri tabanı yönetim sistemleri kitabı
 ORACLE veri tabanı eğitimi notları
 Prof. Dr. Ümit Kocabıçak Sakarya üniversitesi Veri
tabanı ders notları.
Download