2012-03-22 111 views
0

我看到了围绕同一主题的类似问题,但我无法解决我的问题。ADO.NET实体框架模型性能

我有一个带有DB2后端的asp.net web应用程序。我们有实体框架模型3.5 因此,当我第一次加载页面时,执行第一个查询需要接近15秒。查询非常简单,从一个表中选择一行并对where子句进行索引。这是查询

protected Detail getProgramDetail(string id1,string id2, string id3) 
{ 
    Detail result = (from d in context.Detail 
      where d.id1.equals(id1) && 
      d.id2.equals(id2) && 
      d.id3.equals(id3) 
      select d).FirstorDefault(); 
    return result; 

    } 

我也试过更新统计数据,但它也没有帮助。 在阅读其他性能调整文章后,我将此查询作为编译的查询,但仍然花费近15秒。但随后的调用在毫秒内相当快。我认为它花费时间建立连接并运行查询。

有没有办法提高初始性能?我试图产生意见。但我收到以下错误。不知道如何处理这一个。

指定的存储提供不能在配置中找到,或者 无效

我的连接字符串中machine.config中。

在此先感谢。 Srividhya

回答

0

有没有办法提高初始性能?

什么不是ASp.NET /实体框架,但IIS - 启动应用程序,包括做编译需要;)?

让它变热 - 有一个扩展可以在IIS启动时调用页面,所以应用程序很热(编译,加载到内存中)。

http://weblogs.asp.net/scottgu/archive/2009/09/15/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx

+0

我确实为DB2生成了视图,但它的确帮助了我的性能,但并不是很激烈。由于我们仍在使用VS 2008,我无法尝试编译。仍然需要尝试二级缓存。 - Srividhya 29秒前编辑 – Srividhya 2012-04-02 20:09:28

0

有您期待解决这个问题

1)添加第二级缓存与实体框架。本文多个选项是非常有帮助的 http://msdn.microsoft.com/hi-in/magazine/hh394143(en-us).aspx

2)查询和ORM不会粘在一起很好,你可以使用存储过程和Datareader,它肯定会优化性能。 3)如果您可以使用优化您的代码中的第一个或默认设置

+1

我确实为DB2生成了视图,但确实对我的性能有所帮助,但并不是很激烈。由于我们仍在使用VS 2008,我无法尝试编译。仍然需要尝试二级缓存。 – Srividhya 2012-04-02 20:08:30

+0

@Srividhya你有没有尝试优化第一或默认 – satish 2012-04-03 21:01:47