【问题标题】:How to pre-generate views with code-only CTP4?如何使用纯代码 CTP4 预生成视图?
【发布时间】:2010-11-05 10:11:24
【问题描述】:

在使用 CTP 4 和纯代码(无 .edmx 模型文件)时,我们遇到了性能问题。

是否可以在使用纯代码和 CTP 4 时预先生成“视图”?

【问题讨论】:

  • CTP 4 的什么?我想是实体框架。

标签: entity-framework ctp4


【解决方案1】:

can't。但是,您的问题太模糊,无法确定这确实是问题所在。

【讨论】:

  • 认为您的链接回答了我的问题。我们使用实体框架 CTP 4。我们为每个请求生成一个新上下文,因此不是静态上下文(因为我们的查询使用 WCF 通过多个进程传输)。 ContextBuilder(包含我们的配置)和连接是静态的。我们体验到一个查询返回大约 70 个对象,以及一些相关对象(猜测查询从大约 7-8 个表中获取数据),使用大约 2 秒。我们读到“视图”的生成消耗了用于获取 70 个对象的大约 60% 的时间。提高性能的建议?
  • 我不会仅仅接受视图生成是没有证据的问题。你有简介吗?您可以 (1) 分析 SQL 并 (2) 尝试使用 CompiledQuery。如果这使得第二个和所有后续查询更快,那么您就发现了问题。
  • 我们看到如果我们在同一个上下文实例中运行同一个查询两次(或更多);第一个大约需要 1.9 秒,第二个和以后大约需要 0.8 秒。这是否表明是视图生成需要时间?另一件事:我们从 SQL profiler 中看到,实际的 SQL 查询只需要大约 0.1 秒。所以对于第二次及以后的查询,db使用了0.1秒,我们的c#代码使用了0.7秒。我们觉得这很奇怪,因为数据库查询执行通常是耗时的部分。
  • 感谢您的精彩回答。我们将研究 1) 预先生成的视图,2) 打开/关闭连接处理,3) 我们的更改跟踪(我们使用更改跟踪,因为我们在多个进程中运行,以及 4)我们对预加载(包括)的使用。
猜你喜欢
  • 2017-08-05
  • 2021-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-19
  • 2018-01-03
  • 1970-01-01
  • 2015-12-21
相关资源
最近更新 更多