实体框架性能问题

3
当应用程序执行第一个查询时,我在使用实体框架时遇到了性能问题,它需要大约20秒钟的时间。我在SQL Server上使用SQL Server Profiler检查了查询的实际执行时间,只需要几毫秒。在第一个查询之后,其他查询都正常工作。
这个查询是从一个只插入了一行数据的表中进行的极其简单的选择。数据库包含大约200个表,但其中没有任何索引、视图等复杂内容。我看到其他人也遇到了类似第一个查询的问题,但我找不到解决方案。你有什么关于实际情况的想法吗?
好的,这就是查询。
        DBEntities en = new DBEntities();

        var person= (from p in en.People
                           select p).First();
        this.txt1.Text = person.name;

你确定查询需要20秒吗?你对查询结果做了什么操作吗?如果可以看到查询语句可能会有所帮助。 - Tony Abrams
3个回答

1

尽管 SQL 查询只需要毫秒级的时间,但在 EF 中创建 SQL 可能会在第一次执行时花费一些时间。特别是如果它是一个复杂的查询/模型。请查看这篇文章,了解如何预生成以提高性能。预生成视图


0
如果数据库中的查询仅花费了毫秒级的时间(小于300),那么问题就出在应用程序上。您需要对代码进行仪器化,并记录消息以告诉您事务发生的时间。您应该在调用数据库之前和之后进行日志记录,以便排除网络延迟。很可能在第一次查询后结果已被缓存,因此之后所有操作都很快。问题在于设置缓存或传输有效负载是否占用了所有时间。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接