gpt4 book ai didi

entity-framework - EF6 查询预编译

转载 作者:行者123 更新时间:2023-12-01 13:52:57 25 4
gpt4 key购买 nike

有没有办法预编译EF查询,这样app就不需要编译了(即使是第一次执行)?

我有很多复杂的查询,在使用 L2E 时需要一些时间来执行。例如,对于我对 Sql Server profiler 进行基准测试的一个查询报告大约 300 毫秒的执行时间,但实际上这个查询是在我的 PC(至强四核 2.6 GHz 和 8GB 内存)上大约 4.5 秒后完成的。这意味着我的 PC 正在等待数据到达大约 0.5 秒,并花费大约 4 秒来编译和执行查询,最后在我的 PC 上读取数据(只有 4 条记录)。那是很多时间,特别是因为 ToListAsyns() 不会将控制权返回给UI,直到实际查询发送到数据库,这意味着我的应用程序“挂起”所有 4 秒。解决此问题的一种方法是使用 Task.Run() 而不是 ToListAsync,但这只会让我的应用程序显示一些等待签,还是会有4s的延迟。

在一些较旧的 PC 上,这可能意味着用户将等待 10 秒进行查询编译,这不是所希望的。所以,任何人都知道我如何预编译我的所有查询,以便即使是第一次执行也不会延迟?

最佳答案

我相信您正在寻找的概念是“预先生成的映射 View ”— https://msdn.microsoft.com/en-us/data/dn469601.aspx

在搜索该功能时,我还发现了这篇最近的相关文章 — http://www.fusonic.net/en/blog/2014/07/09/three-steps-for-fast-entityframework-6.1-first-query-performance/

请注意,在 EF 5 中添加了支持以自动编译 LINE-to-Entities 查询,因此不再每次都进行编译 — https://msdn.microsoft.com/en-us/data/hh949853.aspx#4

关于entity-framework - EF6 查询预编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29849021/

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