首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架中的Pregenerate插入/更新视图

实体框架中的Pregenerate插入/更新视图
EN

Stack Overflow用户
提问于 2012-10-02 03:09:12
回答 1查看 421关注 0票数 2

我们遇到了一个实体框架的问题,当我们第一次在一个非常简单的对象插入上执行SaveChanges时,延迟了2-4秒。我已经缩小了这个范围(通过蚂蚁性能分析器)来查看世代。我已经看过并遵循了关于用EdmGenT4模板生成视图的文章,但是这并没有帮助:.Views.cs文件只包含SELECT语句,而不是UPDATE或INSERT语句。使用预编译查询、缓存查询等对EF和性能进行了大量讨论,但讨论的中心都是选择,而不是隐藏在SaveChanges()后面的插入或更新。

获得EF生成INSERT视图的唯一方法是尝试在服务启动时插入我知道将失败的行,例如将外键设置为不应该存在的ID。对我来说这绝对是荒谬的。有更好的办法吗?我并不关心它是在编译时还是在服务启动时发生的,但是有什么方法可以强制EF生成所有(基本的)更新和插入视图吗?让服务的第一个用户等待2-4秒插入一行是不可接受的。

我们现在使用的EF 4,但我们将跳转到EF 5和.NET 4.5,如果必要的话,以解决这个问题。

编辑:进一步的研究表明,尽管在创建/编译更新视图时第一次在表上调用SaveChanges()时存在开销,但它可以忽略不计(30-40 is )。分析它使它看起来比它是由于巨大的调用堆栈更糟糕。我最初的时间为2-4秒,最后被分解为其他开销,例如:创建第一个上下文:1600 My第一个EF操作(该操作加载或创建查询视图)400 My(如果预编译),否则3000+ms与远程数据库的初始连接:500 My。

EN

回答 1

Stack Overflow用户

发布于 2012-10-04 06:02:32

进一步的挖掘显示,与其他开销相比,生成更新视图的时间微不足道,不需要进行任何特殊处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12684036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档