Есть работающее на приложение .NET 1.1 которое использует MSSQLServer 2000.
При попытке перекомпиляции его под .NET 2.0 появляется такая особенность: если база данных установлена на локальном компьютере, то приложение загружается нормально. Если же б.д. установлена на удаленном сетевом компьютере, то загрузка приложения занимает 2-3 минуты.
При этом занимаемый приложением объем оперативной памяти за время загрузки постепенно увеличивается с 10 до 60 мегабайт. Надо отметить, что загрузка .NET 1.1 приложения занимает секунд 10 и объем занимаемой оперативки — 50 мегабайт.
Есть ли предположения, каким образом можно побороть такую медлительность загрузки приложения под .NET 2.0?
Здравствуйте, DoMage, Вы писали:
DM>Здравствуйте!
DM>Есть работающее на приложение .NET 1.1 которое использует MSSQLServer 2000. DM>При попытке перекомпиляции его под .NET 2.0 появляется такая особенность: если база данных установлена на локальном компьютере, то приложение загружается нормально. Если же б.д. установлена на удаленном сетевом компьютере, то загрузка приложения занимает 2-3 минуты. DM>При этом занимаемый приложением объем оперативной памяти за время загрузки постепенно увеличивается с 10 до 60 мегабайт. Надо отметить, что загрузка .NET 1.1 приложения занимает секунд 10 и объем занимаемой оперативки — 50 мегабайт.
DM>Есть ли предположения, каким образом можно побороть такую медлительность загрузки приложения под .NET 2.0?
Если проблема только со временем загрузки, то можно попробывать сделать "нЭтив имадж" ngen.exe утилитой.
Здравствуйте, DoMage, Вы писали:
SN>>Если проблема только со временем загрузки, то можно попробывать сделать "нЭтив имадж" ngen.exe утилитой. DM>Попробую :0) DM>Но если бы все так просто было, она бы грузилась одинаково независимо от того, где находится MSSQL?...
Врядли поможет. Используй Profiler какой-нить. С сервером наверно долго договариваются . Может в ConnectionString пулинг отключен? Может еще чего...
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Врядли поможет. Используй Profiler какой-нить. С сервером наверно долго договариваются . Может в ConnectionString пулинг отключен? Может еще чего...
Вообще вроде бы таймаут подключения по умолчанию 15 сек. Поэтому, если договариваются больше этого времени, то должен Exception кидать. У меня в некоторых ситуациях (после перезагрузки сервера например) за это время не укладывалось подключение, поэтому пришлось таймаут побольше поставить.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Здравствуйте, DoMage, Вы писали:
SN>>>Если проблема только со временем загрузки, то можно попробывать сделать "нЭтив имадж" ngen.exe утилитой. DM>>Попробую :0) DM>>Но если бы все так просто было, она бы грузилась одинаково независимо от того, где находится MSSQL?... ДА>Врядли поможет. Используй Profiler какой-нить. С сервером наверно долго договариваются . Может в ConnectionString пулинг отключен? Может еще чего...
Гм... А ежели на пользовательской машине VS не стоит?
И пулинг — это что?
Здравствуйте, DoMage, Вы писали:
DM>Гм... А ежели на пользовательской машине VS не стоит?
У вас VS на одной только машине стоит? DM>И пулинг — это что?
Пул коннектов. При создании нового соединения оно берется из пула, а при закрытии оно не сразу закрывается, а сначала возвращается в пул, и только потом спустя некоторое время оно закрывается. (Задается в строке подключения что-то типа Pooling=(True|False), по умолчанию вроде включен).
... << RSDN@Home 1.2.0 alpha rev. 642>>
Re[2]: MSSQL 2000 и .NET Framework 2.0
От:
Аноним
Дата:
26.02.06 12:39
Оценка:
у меня обратная ситуация (FW1.1) Загрузка с сетевой бд быстрее, чем локальной. Может в настройках подключения что-либо.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Здравствуйте, DoMage, Вы писали:
DM>>Гм... А ежели на пользовательской машине VS не стоит? ДА>У вас VS на одной только машине стоит?
VS у меня только дома стоит :0) На работе его ваще нету. Есть какие-нибудь внешние профайлеры?
DM>>И пулинг — это что? ДА>Пул коннектов. При создании нового соединения оно берется из пула, а при закрытии оно не сразу закрывается, а сначала возвращается в пул, и только потом спустя некоторое время оно закрывается. (Задается в строке подключения что-то типа Pooling=(True|False), по умолчанию вроде включен).
Посмотрим...
Re[6]: MSSQL 2000 и .NET Framework 2.0
От:
Аноним
Дата:
28.02.06 09:48
Оценка:
Если нужен трейсинг доступа к данным на стороне клиента, то можно попробывать использовать "Tracing Data Access".
Если неплохая статья в msdn: "A Gentle Introduction to ADO.NET 2.0 Trace Facilities"
Здравствуйте, DoMage, Вы писали:
DM>VS у меня только дома стоит :0) На работе его ваще нету. Есть какие-нибудь внешние профайлеры?
Да они практически все как внешние работают. Скачай какой-нить триал.
ДА>>Пул коннектов. При создании нового соединения оно берется из пула, а при закрытии оно не сразу закрывается, а сначала возвращается в пул, и только потом спустя некоторое время оно закрывается. (Задается в строке подключения что-то типа Pooling=(True|False), по умолчанию вроде включен). DM>Посмотрим...
В соседней ветки еще про DNS подсказывали... может там чего.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Здравствуйте, DoMage, Вы писали:
DM>>VS у меня только дома стоит :0) На работе его ваще нету. Есть какие-нибудь внешние профайлеры?
ДА>Да они практически все как внешние работают. Скачай какой-нить триал.
Здравствуйте, DoMage, Вы писали:
ДА>>Да они практически все как внешние работают. Скачай какой-нить триал.
DM>Можешь посоветовать какой-нибудь?
dotTrace от JetBrains (Правда его я так и не посмотрел, но вроде о нем положительно отзываются)
GlowCodeNET (Этот посмотрел в принципе понравился, но сильно я его не ковырял)
AQtime (для 1.1 мне нравился для 2.0 не знаю есть или нет)