![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Процесс сервиса занимает 99% процессорног времени. [D5, Win2k]
dlK © (2002-07-09 11:36:00)Как избавиться от этого?
Используется ADO Connection и два таймера.
dlK (2002-07-10 14:45:00) [1]Бр-р-р-р-р-р. Что я совсем не понял.
Проясняю ситуацию:
запрос к БД может не осуществляться в течение суток, т.е., фактически соединения с ней НЕТ, а загрузка, тем не менее, все равно 99% :-(
Fiend (2002-07-09 13:03:00) [2]"Всего лишь" требует коннекта.
вот он и происходит.
Я вот так делал:
при запуске сервера, мне коннект сразу не был нужен. Поэтому я устанавливал асинхронное соединение, выполнял Connection.Open() и бежал дальше. Пока оно там коннектится, я делал нужные мне вещи (инициализации там всякие и т.д.), а когда надо было что то выполнить через соединение, оно было уже к тому времени открыто, и операция проходила менее болезненно. К тому же я не делал ADOConnection.KeepConnection = False;. У меня соединение всегда открыто (не видел причин, чтобы его закрывать).
dlK (2002-07-09 12:40:00) [3]Прописано:
ADOConnection.KeepConnection = False;
Открытого ничего нет. Сервис выполняет всего лишь INSERT при
помощи TADOQuery.
Я думаю дело в приоритете TThread сервиса. Хотя у меня вроде стоит tpIdle, но все равно в диспетчере задач сервис хавает время. =((
Fiend (2002-07-09 11:47:00) [4]Я так понял у тебя в сервисе происходит коннект к оле дб?
Тада это не твоя вина, это просто коннект!
Попробуй использовать асинхронное подключение, немного полегчает