Yorumları: 80
Konuları: 4
Kayıt Tarihi: 02-10-2018
Aktif Kullandığınız Delphi Sürümü:
- Delphi 11
- Delphi 10.4
- Delphi 10.3
- Delphi 10.2
- Delphi 10.1
- Delphi 7
Rep Puanı: 326
Acemi
İyi çalışmalar arkadaşlar insert, update olaylarında ağırlıklı olarak trigger kullanmayımı, yoksa stored procedure kullanmayımı tercih ediyorsunuz. ikisinin arasındaki hız ve performans farkı konusunda fikriniz nedir. Selamlarla.
Yorumları: 280
Konuları: 26
Kayıt Tarihi: 10-08-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.137
Programcı
03-02-2020, Saat: 08:42
(Son Düzenleme: 03-02-2020, Saat: 08:49, Düzenleyen: serdar.)
Merhaba
Trigger bir event, storedproc ise methot'tur. Birbirine tercih edilmesi söz konusu olmaz.
Fakat sanrım sunu anlatmak istediniz;
uygulamadan insert, update yaptıgımızda eger buna bağlı başka kontroller yapmanız gerekiyorsa hangısıne yaptırmalıyız ?
1-Tireggerlar kayıt işlemi yaptğınızda otomatik devreye girer, storedproc ise uygulamadan sizin execute etmeniz gerekir
2-Hata oluşursa trigger içinde rollback komutu ıle tum işlemi geri alırsınız , storedproc ile ise hatayı yakalayıp, yapılan işlemi ve kayıtları tespit edip silmeniz yada geri düzeltmeniz gerekecektir.
3-trigger içinde inserted ve deleted tablolaları etkin kullanılır, storedprocta 'da output komutu ıle tablo tipi değişkenlerle işlem yapmanız gerekır. bu durumda insert, update işlemini uygulamadan değil storedproc ile yapmanız gerekecektir.
4-Eğer veri butunlugunu korumak gerekıyorsa trigger kullanmalısınız.Mesela bır tablodan sılınen kayıtın diğer tabloya eklenmesi şart, olmazsa olmaz dıyorsanız trıgger tercıh olmalı.
Bircok sey daha soylenebılır fakat aklıma gelen soyleyebılıcegım bunlar.
Dersenız kı trıggerı etkın kullanmak ıcın kod yazımında nelere dıkkat etmelyım, o da farklı bır husus. tırgger ıcınde kodlar kısa, sade, amacını en kısa yoldan halletmelı.
Execute suresı minimum olmalı tablolara erısımı kılıtlememelı.
Yorumları: 685
Konuları: 75
Kayıt Tarihi: 24-01-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 926
Acemi
Teşekkürler serdar bey bilgilendirme için , konuyu çok güzel özetlemişsiniz.
Yorumları: 884
Konuları: 35
Kayıt Tarihi: 12-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.853
Uzman
Trigger (Tetikleyici), aşağıdaki durumlarda çalışır;
Before Insert
After Insert
Before Update
After Update
Before Delete
After Delete
veritabanı bütünlüğünü sağlamak için en ideal kullanım şeklidir.
Misal Cari hesap ve fatura tablolalarınız var, cari hesap tablonuzda borc ve alacak alanlarınız olsun, her fatura girildiğinde borç yada alacak alanınızı fatura tutarı kadar arttırıp azaltmanız gerekiyor, bu durumda trigger kullanmanız size büyük rahatlık sağlayacaktır.
Stored Procedure (Depolanmış Yordam),
insert,update,delete veya select işlemlerini veritabanının içine yazıp, dışarıdan verilen parametreler ile çalışması sağlanan bir yapıdır.
Misal fatura tablonuza kayıt ekleyeceksiniz. Fatura_Kayit proceduru yazıp delphi tarafında Fatura_Kayit(id, tarih, tutar) şeklinde stored procedure ile değişkenleri gonderip kaydı yaptırabilirsiniz.
Bu arada Fatura_After_Insert triggeride Cari tablosundaki borc alanını durumua gore arttırıp azaltabilir.