SERİ işlevlerin sırası önemli mi? | Netgez.com
SORU
21 EYLÜL 2011, ÇARŞAMBA


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
21 EYLÜL 2011, ÇARŞAMBA


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.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • GOTO Conferences

    GOTO Confere

    3 EKÄ°M 2011
  • Krumme1996

    Krumme1996

    21 EYLÃœL 2009
  • Rozetked | Обзоры

    Rozetked | Ð

    5 AÄžUSTOS 2011