Страница 1 из 1

Выборка неиспользуемых тегов

СообщениеДобавлено: Вс апр 17, 2016 8:04 pm
tolikadm
Добрый день!
Подскажите, как можно выяснить имена тегов которые уже не используются? Дело в том, что количество лицензированных тегов приближается к максимуму и хотелось бы найти и удалить теги которые уже давно не пишутся. Historian 10, MS SQL 2008.

Re: Выборка неиспользуемых тегов

СообщениеДобавлено: Вс апр 17, 2016 10:17 pm
beachbear
Процедура будет зависеть от общего количества тэгов в системе, от того какой временной интервал считать достаточным для определения тэга как неиспользуемого, и от того насколько загружен сам компьютер хисториана.
Общую стратегию можно обрисовать так:
1. Находим тэги итеративно отбрасывая те, что используются, из полного списка тэгов. Если тэгов много, то процесс разбивается на группы тэгов по несколько тысяч в каждой группе используя LIKE на дифференцирующую подстроку имени тэга, чтобы не перегружать хисториан запросами.
2. Сначала отбрасываем тэги, которые получают данные в текущий момент времени. Для этого делаем запрос к таблице Live. Тэги, показывающее текущее значение исключаются из списка кандидатов на удаление.
2. Потом для оставшихся кандидатов делаем запрос к таблице History в режиме DELTA за последний час, передавая имена тэгов используя IN. Тэги, возвращающие значения, исключаем.
3. Продолжаем процесс исключения, запрашивая данные за последний день, неделю, и так далее для сужающего списка кандидатов, пока не достигнем нужного временного интервала.

Если бы использовался хисториан 2014 R2, то было бы достаточно использовать один запрос таблицы History за последнюю минуту, так как в этой версии используется новый движок, который сам ищет начальные значения тэгов, идя назад во времени. В более старой версии 10 такого нет, и могут быть ситуации, что последнее значение тэга не было продолжено в текущий блок истории, поэтому нужно идти назад во времени вручную, чтобы гарантировать отсутствие данных.