缓慢的Lambda表达

Cro*_*oup 1 c# lambda entity-framework

任何人都可以给我任何关于如何使这个运行更快一点的指针?

return mb_entities.prospects.
         FirstOrDefault(x => x.address == person.Add &&
                x.homePhone == person.HPhone &&
                x.bizPhone == person.BPhone && 
                x.cellPhone == person.CPhone &&
                x.city == person.City &&
                x.state == person.State && 
                x.zip == person.Zip &&
                x.email == person.Email &&
                x.firstName == person.FName &&
                x.lastName == person.LName &&
                x.middleName == person.MName &&
                x.genCode == person.GC) ?? new prospect();
Run Code Online (Sandbox Code Playgroud)

现在它运行在160到180毫秒之间.如果我不必这样做1000次就没问题.

任何提示将非常感谢.谢谢!

usr*_*usr 7

在最具选择性的列上创建索引(例如,在email,zip和lastname上).这会加快速度.它应该是多列的一个索引.

您的表中必须有大量记录,执行此操作需要160毫秒.即使没有索引,这也非常长.

  • 出于空间原因,我建议仅为子集编制索引.如果他的索引只返回一行或者返回5个多余的行,那么它就不会产生太大影响.我不建议他在NC索引中复制整个表格,因为它很大. (2认同)