SignalR ve Sql Dependency Kısıtlamaları

3 yıllık aradan sonra tekrardan merhaba arkadaşlar. Merhaba yazısı olarak bu ara sıklıkla uğraştığım kütüphane olan SignalR ve Sql Dependency’ i seçtim. Bunun nedeni olarak gelen istekler doğrultusunda bazı sql bilgilerimizin burada kullanılamayacağını tecrübe etmiş olmam. Dilerseniz lafı fazla uzatmadan başlayalım.

Kısıtlamalardan önce merak ediyor olabilirsiniz. Procedure ve joinli sorgu kullanabilir miyim? Evet sql dependencyde bunları kullanmamıza engel olacak bir durum yok.

1.Top ifadesi kullanılmaz

Diyelim ki bir sorgu sonucunda sonucunda en üstteki kaydı getirmek istiyorsunuz. Çözüm alternatifi olarak satırlarda sıra numarası tutarak buna uygun bir yöntem geliştirebilirsiniz.

2.* ifadesi kullanılmaz

From’ dan önce ilgili tablonuzda hangi alanları okuyacaksanız bunları belirtmeniz gerekiyor.

3. Matematiksel işlem yapılan alanlar kullanılmaz

Şöyle ki sum(toplam) gibi bir ifade ile bize toplam sonucu veren bir alanın toplam değeri değiştiğinde yani toplanan alanı ayrıca belirtmediysek toplam değerindeki değişim ile tetiklenme gerçeklenmez. Ancak Group by ile kullanımında bir engel yoktur.

4.Pivot ifadesi kullanılmaz

5.İç içe select kullanılmaz

İhtiyaç duyarız bir sorgu sonucunda dönen değerleri diğer tablodaki alanlarla ilişkilendirerek sonuç getirmek isteriz. Ancak böyle bir sorgu ne yazık ki anlık veri alışverişinde işimizi görmeyecektir.

6.AVG,MAX,MIN,COUNT kullanılmaz

7.UNION kullanılmaz

Farklı iki sorgu ile aynı alanları elde etmek istiyoruz. Union ile yazdığımız sorgu malesef anlık veri alışverinde işimizi görmeyecektir.

8.DISTINCT ifadesi kullanılmaz

Tekrar eden alanlardan 1 tanesini almak istiyoruz. Ancak bundaki değişimi de elde etmek istiyoruz. Bu malesef doğrudan yazdığımız select sorgusu ile mümkün değildir.

Peki 8 tane olmaz maddesi yazdık. Bu ifadeler olmadan zaten sorgu yazmamızın pek anlamı kalmıyor diyebiliriz. Çözüm sizinde aklınıza gelmiştir. Bu ifadelerin hepsini kullandığımız bir sorgu düşünelim. Biz bu sorgu sonucunda bu verileri aslında bir yere kaydetmeden elde etmek istiyoruz. İzin verilmeyen durum aslında bu. Ancak biz bu karmaşık sorgu sonucunda elde ettiğimiz sonucu bir tabloya kaydedersek ve sorguyu çalıştırdığımız yerde bu tablomuzdaki verileri güncellersek aslında bu ifadeleri dolaylı yoldan kullanmış oluruz.

Related Post

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir