Сообщение создано: 26. 02. 2015 [15:36]
|
igkondrat
Игорь Кондрат
Создатель темы
Зарегистрирован(а) с: 04.12.2014
Сообщения: 4
|
Добрый день,
Помогите разобраться.
Есть -
Openscada _0.9-r2191_i386
Mysql version: 5.5.41-0+wheezy1 (Debian)
Создан контроллер в «Вычислителе на java подобном языке», в нем 25 параметров.
Планирование вычисления установлено в 30с. Фактически занимает 5-10с.
Создан архив значений на БД, но я никак не могу понять значения параметров
«периодичность значений» и «периодичность архивирования».
В моем случае я выставляю периодичность значений 30с (так как опрашиваю каждые 30 секунд), а архивирование мне надо выставить любое значение более 30с?
Если я выставлю «периодичность значений» 60с, то в базу будут писаться значения с шагом 60с.?
Но основная проблема в другом, таких контроллеров у меня 10 штук, и время архивирования, при выставленном значении «периодичность архивирования» в 120с, составляет примерно 12-15с. Но иногда превышает 1.5 минуты. Если включить уровень лога в «Отладку» и запустить логирование запросов mysql видим такую картину. -
В лог openscada непрерывно с огромной скоростью сыпится -
openscada: 4|/sub_BD/mod_MySQL/db_oscada_sokol/ | Ошибка 1 запроса к БД: Duplicate entry '2015-02-26 12:42:00-0' for key 'PRIMARY'
В момент sql-запросов -
INSERT INTO `oscada_sokol`.`DBAVl_arch_1m_set4tm_rp_3_A` (`TM` ,`TMU` ,`VAL` ) VALUES ('2015-02-26 12:39:00' ,'0' ,'5000' )
SELECT 1 FROM `oscada_sokol`.`DBAVl_arch_1m_set4tm_rp_3_A` WHERE `TM`='1424954340' AND `TMU`='0'
INSERT INTO `oscada_sokol`.`DBAVl_arch_1m_set4tm_rp_3_A` (`TM` ,`TMU` ,`VAL` ) VALUES ('2015-02-26 12:39:00' ,'0' ,'5000' )
COMMIT
ALTER TABLE `oscada_sokol`.`DBAVl_arch_1m_set4tm_rp_3_A` DROP PRIMARY KEY, CHANGE `VAL` `VAL` bigint NOT NULL DEFAULT '0' ,ADD PRIMARY KEY (`TM`,`TMU`)
DESCRIBE `oscada_sokol`.`DBAVl_arch_1m_set4tm_rp_3_A`
Т.е. зацикливается insert с одинаковым TM(primary). Чем и «грузит» сервер.
Я пробывал удалять архив, создавать новый и т. д., но ситуация не меняется, в чем может быть ошибка?
|
Сообщение создано: 26. 02. 2015 [16:42]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"igkondrat" wrote:
Создан архив значений на БД, но я никак не могу понять значения параметров
«периодичность значений» и «периодичность архивирования».
В моем случае я выставляю периодичность значений 30с (так как опрашиваю каждые 30 секунд), а архивирование мне надо выставить любое значение более 30с?
Можно и меньше, но тогда он будет гонять пустые циклы через раз в виду отсутствия данных.
"igkondrat" wrote:
Если я выставлю «периодичность значений» 60с, то в базу будут писаться значения с шагом 60с.?
Если «периодичность значений», то да.
"igkondrat" wrote:
Но основная проблема в другом, таких контроллеров у меня 10 штук, и время архивирования, при выставленном значении «периодичность архивирования» в 120с, составляет примерно 12-15с. Но иногда превышает 1.5 минуты. Если включить уровень лога в «Отладку» и запустить логирование запросов mysql видим такую картину. -
В лог openscada непрерывно с огромной скоростью сыпится -
openscada: 4|/sub_BD/mod_MySQL/db_oscada_sokol/ | Ошибка 1 запроса к БД: Duplicate entry '2015-02-26 12:42:00-0' for key 'PRIMARY'
Ключи целыми сломались, точнее интерпретация их с UTC в символьную запись, с добавлением динамического перевода сообщений.
Позже исправлю.
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 27. 02. 2015 [00:19]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"roman" wrote:
Позже исправлю.
Исправлено!
Learn, learn and learn better than work, work and work.
|