| imho.ws |
![]() |
|
|
|
# 1 |
|
Junior Member
Регистрация: 16.07.2002
Сообщения: 113
![]() |
Приветствую.
Пишу программу на Delphi + Access (не сам Access, а Jet и MDAC) - небольшая база (не сетевая даже - 1 рабочее место) + отчеты на бумаге и экспорт в Excel. Столкнулся со странной проблемой. На моей рабочей машине все отлично работает. На машине заказчика P3, Win98, Office2000 - помедленнее, но тоже хорошо. Купили под эту задачку новый компьютер P4 3kMHz, 1024Mb, WinXPSP2, Office2003, антивирусов нет(короче сильная овая машина) - запускаюсь я на ней и вот те зсдрасте: 1. Открытие программы происходит с непонятной задержкой в 2 сек. 2. Открытие всех формочек (даже элементарных справочников с порядка 10 записями) с задержкой до 10 сек. 3. Экспорт в Excel меня совсем убил - в десятки раз дольше чем на (P3, Win98, Office2000). Причем такое ощущение, что сами операции (например открытие формы, отчета) происходят быстро (кроме экспорта), но перед ними машина просто делает паузу. Диспетчер задач при этом не показывает никакой нагрузки. Делал эксперименты, переставил офис на 2000 - все то же самое. Потом заметил, что значек подключения по локальной сети при работе с программой все время горит - т.е. идет трафик. Интернета там нет, просто несколько машин в сети. Эксперименты показали - если запускать программку при Отключенной сети, то все работает без задержек даже если сеть после запуск программы включить. Если запускать при включенной сети, то все тормозит. Подскажите, как пониммать происходящее? Что предпринять? Спасибо! |
|
|
|
|
# 3 |
|
Junior Member
Регистрация: 16.07.2002
Сообщения: 113
![]() |
sys_ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=' + ExtractFilePath(Application.ExeName) + 'db\' + DataBaseFile + ';Persist Security Info=False';
Люди говорят, что может быть Office2003 виноват - он пытается достать какие-то компоненты в интернете, не находит и работает своими местными силами. Но 2003 я заменил на 2000 и ничего не поменялось. Ума не приложу - что делать? |
|
|
|
|
# 4 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
да это OLE - тормозит по страшному... надо в настройках коннектора копаться и в настройках системы...
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|
|
|
|
# 5 | |
|
Junior Member
Регистрация: 16.07.2002
Сообщения: 113
![]() |
Цитата:
И почему на старой машине не тормозит? И почему у меня на рабочей не тормозит? И на что влияет отключение сети?
|
|
|
|
|
|
# 6 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
Без поллитры не разберешься... OLE контейнер - штука не предсказуемая... производительность может изменяться даже от очередного обновления винды... Вопрос на засыпку, а какой дата соурс используется? У меня с джетовским драйвером только ADO нормально работает...
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|
|
|
|
# 8 | |
|
Junior Member
Регистрация: 16.07.2002
Сообщения: 113
![]() |
Цитата:
программы на компьютере (P4 3GHz, 1024Mb, WinXPSP2, Office2003) при включенной локальной сети (доступа в интернет нет) при выполнении программой операций (например открытия форм, отчетов) возникает задержка до 10 сек. При запуске программы с предварительно отключенной лок. сетью подобных задержек не возникает, все выполняется мгновенно. Очевидно кто-то запрашивает что-то по сети перед выполнением каждой операции с БД - что это может быть и как это выключить? Т.е. сами механизмы доступа к данным работают быстро - это видно при отключении сети - все происходит мгновенно. Вопрос в том - на что влияет включенная сеть и кто (и зачем) начинает по ней гулять (и самое главное - как ему запретить)? |
|
|
|
|
|
# 9 |
|
Junior Member
Регистрация: 16.07.2002
Сообщения: 113
![]() |
Делюсь опытом.
Итак мы остановились на том, что был обнаружен трафик по сети во время задержек в работе программы. Я вооружился сниффером, который показал исходящий трафик на один из компьютеров под Win98 (назовем его Х) локальной сети по 139 (NetBIOS) и 445 (MS DS - не знаю, что такое) портам. Выключаю компьютер Х - программка летает даже при включенной сети. На этом Х установлен принтер, который используют все остальные компьютеры, в том числе и тот, на котором работает моя программа. Включаю Х, удаляю принтер - все летает. Подключаю принтер обратно - работает медленно. Значит дело в нем. Какая связь между программой на одном компьютере и принтером (общим для всех компьютеров) на другом компьютере? Задержки не только при печати отчетов, н ои при открытии справочников, форм и т.п.??? |
|
|
|
|
# 10 |
|
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
Хм... поддержка принтера в твоем софте естественно еть
А ты попробуй ее закоментить и посмотри что получится...
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|
|
|
|
# 14 |
|
Junior Member
Регистрация: 16.07.2002
Сообщения: 113
![]() |
Делюсь опытом дальше.
Проблема решена (огромное спасибо Вадиму Суслину) следующим образом. Напомню, есть машина под ХР - на ней моя программа, и эта программа печатает по сети на принтере (Canon LBP1120), установленном на машине под вин98. 1. Поставили принтер на ХР машине как локальный на LPT1 порт (самого принтера там конечно нет). 2. Написали батник с 2 строчками: первая стирает все настройки net use; вторая - перенаправляет обращения с порта LPT1 на IP 98 машины в сети. 3. Виндовый шедулер во время старта ХР машины и далее с некоторой периодичностью (на случай, если 98 машина была выключена в момент включения ХР-шной) выполняет этот бат. Результат - все работает, задержки при работе программы полностью отсутствуют .Вопрос - заработать-то заработало, но я так и не понял, что вызывало задержки в программе (до 25сек) при открытии форм и трафик по сети? Как это можно объяснить?
|
|
|