W oparciu o to pytanie: What is difference between Where and Join in linq?LINQ - Używanie miejsca lub dołączenia - Różnica w wydajności?
Moje pytanie jest następujące:
Czy istnieje różnica wydajności w dwóch następujących stwierdzeń:
from order in myDB.OrdersSet
from person in myDB.PersonSet
from product in myDB.ProductSet
where order.Persons_Id==person.Id && order.Products_Id==product.Id
select new { order.Id, person.Name, person.SurName, product.Model,UrunAdı=product.Name };
i
from order in myDB.OrdersSet
join person in myDB.PersonSet on order.Persons_Id equals person.Id
join product in myDB.ProductSet on order.Products_Id equals product.Id
select new { order.Id, person.Name, person.SurName, product.Model,UrunAdı=product.Name };
bym zawsze używaj drugiego tylko dlatego, że jest bardziej przejrzysty.
Moje pytanie jest teraz, czy pierwsze jest wolniejsze od drugiego? Czy tworzy produkt kartowy i filtruje go później z klauzulami where?
Dziękuję.
Bardzo dobra odpowiedź, a przy użyciu łączenia wydajność powinna być lepsza? – kamahl
@Patrick: wydajność zależy od dokładnej sytuacji. Jeśli LINQ do SQL konwertuje go do tego samego SQL, to oczywiście nie będzie to miało znaczenia. Ale tak, generalnie połączenie * powinno * działać lepiej. Jestem pewien, że są wyjątkowe przypadki, w których to by nie było :) –