gpt4 book ai didi

.net - LINQ查询与SQL等效的性能

转载 作者:行者123 更新时间:2023-12-04 03:02:09 25 4
gpt4 key购买 nike

我目前正在与某人进行辩论,讨论针对SQL等效项的LINQ查询的性能。

有没有人做过/见过任何科学测试?

如果不是这样,那么,出于性能原因,必须在哪里用SQL查询替换LINQ的轶事证据将对我有所帮助。

最佳答案

我对此略有不同。分析(使用shiny profiler)时,我们注意到LINQ(在本例中为SQL)在为基本查询生成TSQL方面做得很合理,并且该操作在DB服务器上运行非常快(0.5ms等),但是实际查询操作花费的时间更长(在某些情况下,对于相同的0.5ms查询,例如20ms +)。那么,时间在哪里?您可能会认为“查询翻译”,但没有。我们还有很多ExecuteQuery<T>代码(即您手动编写TSQL的地方),而的作用与完全相同。事实证明,在实现者和身份映射之间的某个位置浪费了大量时间。

所以;我们编写了自己的实现器,几乎替代了ExecuteQuery,因此诞生了dapper

在LINQ的更多方面,它通常可以为简单查询生成TSQL,但是对于复杂的事情,我通常更信任手工编码的TSQL。以一个案例为例,我有一个复杂的查询,涉及组,跳过和接听。效果不佳。当我用ROW_NUMBER()等手工编写时,相同的结果占用了“统计数据IO”和总时间的4%。

我对LINQ的当前看法是,ORM工具使数据突变变得轻而易举,但是对于查询,我倾向于使用dapper。具有讽刺意味的是,由于LINQ中的Q是“查询”。

关于.net - LINQ查询与SQL等效的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6598546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com