LINQ To SQL在Windows Server 2008 R2上运行缓慢

时间:2011-09-02 10:32:42

标签: linq linq-to-sql windows-server-2008-r2

我们刚刚将一个.Net应用程序从Windows 2003 Server迁移到虚拟Windows Server 2008 R2(64位,VMWare)。

此应用程序是一个在.Net Framework 4.0,32Bit上运行的简单控制台应用程序,它运行不同的作业来选择,修改业务数据并将其保存到数据库。对于数据库,我们使用SQL 2008 R2。

由于我们在Windows Server 2008 R2上运行应用程序,我们认识到,使用LINQ to SQL执行Select-Statements的速度比我们以前使用的Windows Server 2003慢。我们使用简单的LINQ查询进行了检查,在Win 2008上花了大约500毫秒。

我们使用System.Data.Linq.DataContext并使用Method GetTable<>()从数据库中获取对象。

比较我们从创建datacontext到从DB-Objects到应用程序中的.Net-Objects的映射所花费的时间。 见代码:

System.Data.IDbConnection testConnection;
System.Data.Linq.Mapping.MappingSource testMappingSource;
...
...
        using (System.Data.Linq.DataContext dc = new System.Data.Linq.DataContext(testConnection, testMappingSource))
        {
dc.DeferredLoadingEnabled = false;

            return  = (from dbObject in dc.GetTable<TestTable>()
                      select dbObject).FirstOrDefault();
        }

在Windows 2008 R2 Server上安装.Net Framework 4.0,并在服务器功能中启用.Net Framework 3.5.1功能。

应用程序安装在三个Windows 2003 Server上的三个不同阶段(开发,测试,生产)上。现在它运行在三个虚拟Windows 2008 R2服务器上。我们在所有三个Windows 2008 R2 Server上都存在相同的问题。我们甚至在物理Windows 2008 R2服务器上测试了它;同样的问题。

有谁知道造成这种差异的原因是什么?什么可能是解决这个问题的解决方案?

提前多多感谢! 电贺 汤姆

0 个答案:

没有答案