onik
Junior Member / Новичок
Участник № / Member № 3267
отправлено / posted
Добрый день.
Произвожу запись значений двух каналов в БД MySQL и вывожу одновременно эти же значения на тренд. Запись в БД идет ОЧЕНЬ медленно, тестировал на 2 разных комбинациях машин (от 5 до 10 сек 1 запись)
Проект ничего сложного из себя не представляет - сделан по образу примера записи в БД access в "быстром старте"
MySQL установлен на отдельной машине с Linux, общение через ODBC последней версии с сайта mysql.com
Оба компьютера ничем другим не загружены.
TRACE MODE Профайлер выдает периодически через 5-10 сек сообщение !Calc loop is big
Во время записи значения в базу тренд "подвисает", выдавая прямой горизонтальный отрезок, вместо реальных значений каналов, после записи ведет себя нормально и т.д.
Запись в реальном времени в удаленную БД MySQL не возможна в trace mode или что-то я делаю не так??
Сообщения / Posts 3 | Из / From: Российская Федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
1. Необходимо перейти на релиз 6.06
2. Постоянная запись в MySQL возможна только с интервалом 1,5. Более частые записи частично теряются.
3. Чтобы обмен с БД не грузил остальной процесс, можно каналы Call связи с БД перевести в поток Idle.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
onik
Junior Member / Новичок
Участник № / Member № 3267
отправлено / posted
>> 2. Постоянная запись в MySQL возможна только с интервалом 1,5. Более частые записи частично теряются. с 1.5 секунды?
хотелось бы знать, что означает появление сообщения !Calc loop is big
При переводе единицы измерения канала связи с БД в "быстрый", начинает работать существенно лучше - добавляется по несколько записей в секунду, но иногда с проскоком, а в Idle так же как и раньше (это касается версии 6.05.1). При этом сообщение Calc loop is big не появляется (с"быстрый"). С чем это связано?
Сообщения / Posts 3 | Из / From: Российская Федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
Сообщение "Calc loop is big" означает превышение времени выполнения основного потока. Если Вы переводите выолнение обмена с БД в другой поток, то это сообщение появляться не будет.
По поводу интенсивности записи: Если канал Синусоида менялся раз в 3 цикла (1,65 сек), то все изменения попадали в БД. При изменении с периодом 2 цикла (1,1 сек) часть значений не заносилось в БД. Связано это с медлительностью работы ODBC драйвера.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |