SERİ işlevlerin sırası önemli mi?
Temel olarak, soru olarak Birleşik Devletleri... SERİ işlevleri açısından madde düzeni yokperformans? Belli ki sonuç yine aynı olurdu...
Örnek:
myCollection.OrderBy(item => item.CreatedDate).Where(item => item.Code > 3);
myCollection.Where(item => item.Code > 3).OrderBy(item => item.CreatedDate);
Her ikisi de bana aynı sonuçları döndürür, ama farklı SERİ bir sırada. Yeniden bazı maddeler farklı sonuçlara neden olacağını fark, ve bu konuda endişeli değilim. En büyük endişem, eğer bilerek, aynı sonuçları almak, sipariş etmek ne performansını etkileyebilir. Ve, sadece herhangi bir SERİ aramalar yaptım 2 SERİ çağrıları (Nerede OrderBy), ama.
CEVAP
Kullanımda ETMENİZ sağlayıcı bağlıdır. Nesneleri bu SERİ için, bu kesinlikle bir hale getirebilirbüyükfark. Varsayalım aslında var:
var query = myCollection.OrderBy(item => item.CreatedDate)
.Where(item => item.Code > 3);
var result = query.Last();
Bu gerektirirtümtoplama sıralanacaksonrasüzülmüş. Eğer bir milyon öğeler olsaydı, tek bir kod daha vardı 3, zaman atılması sonuçlar veren bir sürü israf olurdu.
Ters işlem ile karşılaştırın, ilk filtreleme:
var query = myCollection.Where(item => item.Code > 3)
.OrderBy(item => item.CreatedDate);
var result = query.Last();
Bu sefer tek örnek "tek bir öğe filtre" çok daha verimli zaman ve uzay her ikisi de olacak. sadece eşleşen durumunda hangi filtre sonuçları, ısmarlıyoruz
Ayrıcaolabilirsorgu doğru yürütür ya da değil fark yaratır. Düşünün:
var query = myCollection.Where(item => item.Code != 0)
.OrderBy(item => 10 / item.Code);
var result = query.Last();
Sorun değil - asla 0 ile bölme olacağımızı biliyoruz. Ama eğer sipariş gerçekleştiriyoruzöncefiltreleme, sorgu, bir özel durum oluşturur.
Nasıl olursa item sırası önemli değils...
Ne kadar önemli dizinler sütun sırası ...
Neden baskı "B" baskı " ...
Birden fazla "SERÄ°" sipariÅŸ...
Seri hale getirilirken jQuery JSON içi...