我有一个通过 Entity Framework 4 执行查询的服务,它没有任何问题,直到现在我尝试在带有 IIS 6 的 Windows Server 2003 或带有 IIS 7 的 Windows 7 上执行它。
现在,当我尝试在 Windows Server 2008 R2 和 IIS 7.5 上运行相同的服务时,相同的查询变得非常慢(从 200 毫秒到 3 秒)。分析问题我发现,当它尝试生成要执行的sql查询时需要很长时间,只需调用一个ToTraceString()就需要将近3秒。
我不知道操作系统和 IIS 版本是否可能是问题,但它们是我看到的唯一差异。
谢谢
更新
我发现问题实际上是在 Entity Framework 生成查询所需的时间,它取决于处理器,使用 Intel 它运行良好,使用 AMD 它要慢得多,如果应用程序运行多,它会变得更糟-cores,强制 w3wp 使用单个内核,它变得更好但仍然比英特尔解决方案慢