Sayfalar

6 Nisan 2016 Çarşamba

Entity Framework VS SQL

Projelerimde genel olarak kullandığım teknolojiler web server tarafında ASP.NET MVC  veritabanı SQLSERVER ve kodlamayı  C sharp kullanarak gerçekleştiriyorum.

Entity Framewok 'e yeni geçen biri olarak kolaylıklarından ve sql bazlı sorgulama mantığıyla arasındaki genel farklılıklardan bahsetmek istiyorum. Aslında bu karşılaştırmaya genel olarak ORMler ile SQL arasındaki karşılaştırma diyebiliriz.

ORMlerin en büyük kolaylıkları sql sorgusu yazmadan veritabanı işlemleri yapabilmenizi sağlamasıdır.  Domain Driven Development yapısı için uygundur.
Code-First çalışıyorsanız bütün gerekli işlemleri projenizin içine gömebilirsiniz.
Ancak bazı durumlarda bu özellikler performans konusunda sıkıntı yaratabilir.
Entity tabanlı çalışan bir sistem olduğu için hiç gerekmeyen özellikler her daim sql server tarafından çekilir. Uzak sql server kullanıyorsanız bu baya bir sıkıntı oluşturabilir.
Bunların dışında prosedürlerin performansı büyük çaplı sorgularda çok daha iyi bir sonuç için kullanmanız gerekebilir.

Mesela benim geliştirdiğim bir araç takip uygulamasında günlük 15 milyon kayıt kaydediliyor. Bu data boyutunda olan verilerinizin işlemlerini linq sorgularıyla client tarafta yapamazsınız. Veriyi listeye dolduramazsınız. Sistem kaynakları iflas edebilir. Sql server gibi bir veritabanı sunucusunun görevi burada büyük bir anlam taşımaktadır.

Verinin büyüklüğünden çok ne kadar zaman aralığında bu sorguların çalıştırıldığı önemlidir aslında.
Bir günlük veri çekebilirsiniz bir saatlikte çekebilirsiniz. Gerekli indexleri ayarladığınızda sorgularınız çok hızlı bir şekilde çalışabilir.

Kısacası Entity Framework kullanıyorsanız bile altında sql sorgularının çalıştığını unutmamak gerekir. Onun için her daim sql bilgilerinizi taze tutmanız önemlidir.


2 yorum: