Мы только что переместили одно из наших приложений .Net с Windows 2003 Server на виртуальный Windows Server 2008 R2 (64-битный, VMWare).
Это приложение представляет собой простое консольное приложение, работающее на .Net Framework 4.0, 32-битная, которое выполняет различные задания для выбора, изменения и сохранения бизнес-данных в базе данных.Для базы данных мы используем SQL 2008 R2.
Поскольку мы запускаем приложение на Windows Server 2008 R2, мы признали, что выполнение операторов Select-Select с LINQ to SQL выполняется медленнее, чем на Windows Server 2003, которую мы использовалидо.Мы проверили это с помощью простого запроса LINQ, и это заняло на 500 миллисекунд дольше в Win 2008.
Мы используем System.Data.Linq.DataContext и получаем объекты из базы данных с помощью метода GetTable <> ()..
Для сравнения длительности мы потратили время от создания текстового контекста данных до отображения из 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 установлен .Net Framework 4.0, а на сервере включены функции .Net Framework 3.5.1.
Приложение было установлено на трех разных этапах (Dev, Test, Production) на трех Windows 2003 Server.Теперь он работает на трех виртуальных Windows 2008 R2 Server.У нас одинаковая проблема на всех трех серверах Windows 2008 R2.И мы даже протестировали его на физическом Windows 2008 R2 Server;Та же проблема там.
Кто-нибудь знает, что вызывает эту разницу?И каким может быть решение этой проблемы?
Заранее большое спасибо!Привет Том