2010-10-22 44 views
4

我已经阅读了关于EF中的预生成视图的相当数量,但不确定哪些场景你不会使用它。我的理解是,只需要在您的项目中进行一些设置,这是唯一的打击。因此,您将首先获得查询的性能改进,实质上是免费的。何时使用实体框架预先生成的视图

如果是这种情况,您为什么不直接在每个EF项目中使用它?

由于

回答

3

从MSDN:

http://blogs.msdn.com/b/dmcat/archive/2010/04/21/isolating-performance-with-precompiled-pre-generated-views-in-the-entity-framework-4.aspx

由于查询的第一次执行是在性能增益,利用预先生成的视图在至少两种情况将是显着的价值:系统的热身和执行不经常运行的查询。使用较少的内存也是有利的,并且不再有保持和创建视图的开销。

预编译的意见提高查询性能首次他们正在运行。随后的执行没有得到改善,因为查询被编译。这意味着预编译任何给定查询的好处取决于执行时间和执行频率。

+0

感谢Dave的回复,这篇文章有点混淆,因为它交换了预先生成的视图和预编译的查询。我很高兴我了解编译查询的优点和缺点,但我仍然不确定是否能够获得预生成的视图。 – 2010-10-22 13:31:36

+0

我认为预编译的视图和查询是一回事。这些术语似乎可以互换使用。 – 2010-10-22 13:54:16

+0

我非常肯定他们不同,但他们被称为预生成视图和预编译查询。前者是EF需要访问数据库的内容。后者特定于查询。 – 2010-10-22 14:06:01