ToTraceString需要很长时间才能执行

MaR*_*Ruf 5 performance linq-to-entities entity-framework entity-framework-4

我有一个通过Entity Framework 4执行查询的服务,它没有任何问题,直到现在我尝试在带有IIS 6的Windows Server 2003或带有IIS 7的Windows 7上执行它.

现在,当我尝试在Windows Server 2008 R2和IIS 7.5上运行相同的服务时,相同的查询变得非常慢(从200ms到3秒).分析我发现的问题,当它试图生成执行sql查询时需要很长时间,只需调用ToTraceString()需要将近3秒.

我不知道OS和IIS版本是否可能成为问题,但它们是我看到的唯一差异.

谢谢

更新

我发现问题在Entity Framework生成查询时有效,而且它取决于处理器,Intel运行得非常好,AMD运行得慢得多,如果应用程序运行多了就会变得更糟-cores,迫使w3wp使用单核,它会比英特尔解决方案更好但速度更慢