在我的应用程序中,我有一个使用 25 个包含的大查询。我知道这可能有点过分,但它并没有给我们带来太多问题并且工作正常。如果我使用 EF 生成的查询并在数据库中手动运行它大约需要 500 毫秒,而 EF 使用大约 700 毫秒的代码从数据库中获取数据并构建对象结构,这是完全可以接受的。
然而,问题出在生产服务器上。如果我在那里手动运行查询,我会看到大约 500 毫秒的时间使用来获取数据,但实体框架现在使用大约 11000 毫秒来获取数据和构建对象,这当然无论如何都不好。
所以我的问题是:当在数据库上手动触发的查询大致相同时,这些极端差异的原因是什么?