我正在开发一个基于 Entity Framework 的软件来处理 MS SQL Server 2008 数据库中的数据。
[问题 1]
我刚刚尝试将一些小数据(大约 2 Mb)从我的程序插入数据库:性能非常糟糕!插入这些数据需要超过 1 分钟!
我已经尝试生成预编译 View ,我得到了相同的结果:-(
我的所有代码都使用业务层(使用 T4 模板从 .edmx 文件自动生成)来管理服务层中的数据。在对象关系中导航非常实用。
如何使用 Entity Framework 提高这些插入的性能?
[问题2]
此外,在使用 SaveChanges() 方法将数据插入数据库之前,我使用 AddObject() 方法填充我的对象上下文。我使用 AddObject() 将大约 100 000 个小对象(大约 2 Mb)添加到我的对象上下文中:这需要很长时间(超过 10 分钟)!
我怎样才能减少这个时间?
更新
我的程序必须在 2-3 分钟内在数据库中保存超过 50 Mb 的数据?您认为使用 EF 有可能吗?
最佳答案
您可以使用 Entity Framework Profiler 检查正在生成的 SQL。该工具有 30 天的免费试用期。它还声称它可以做“使用 Entity Framework 时常见陷阱的分析和检测”。
还有this EF调优的文章
编辑
根据您的编辑,EF 不是可行的方法。您需要进行批量插入才能快速获取数据。查看 this 链接,我在其中帮助某人将加载时间从 10 小时减少到 6 分钟。
关于c# - Entity Framework 4 : Bad performance with SQL Server 2008,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3890974/