Просмотр файлов технологических журналов 1С (WinAPI)

04.11.21

База данных - HighLoad оптимизация

Программа просмотра файлов технологических журналов 1С (WinAPI). Работает с большими файлами. Минимальное потребление памяти при индексировании данных, просмотре. Анализ управляемых взаимоблокировок, таймаутов, ожиданий. Фильтры по событиям, периоду, пользователям, соединениям, сеансам.

Скачать файлы

Наименование Файл Версия Размер
Архив с программой просмотра файлов, readme, пример файла настроек сбора ТЖ
.zip 1,35Mb
28
.zip 1,35Mb 28 Скачать
Архив исходных кодов программы просмотра файлов ТЖ
.zip 3,84Mb
2
.zip 3,84Mb 2 Скачать

Обновление 04.11.2021

Исправлена ошибка фильтра Time. Исправлена утечка объектов GDI.

Обновление 21.09.2021

Добавлена цветовая визуализация сеанса источника блокировки и жертвы при анализе управляемых блокировок (см. скриншот "Результат анализа таймаута").

 

Основное

Программа просмотра файлов технологических журналов 1С (WinAPI).

  • Работает с большими файлами.
  • Минимальное потребление памяти при индексировании данных, просмотре.
  • Анализ управляемых взаимоблокировок, таймаутов, ожиданий.
  • Фильтры по событиям, периоду, пользователям, соединениям, сеансам.
  • Сортировка событий по времени с разных рабочих серверов кластера 1С.
  • Вывод рабочего сервера в строке состояния для события ТЖ.
  • Визуальное выделение текущего события.

С исходными кодами так же можно ознакомиться по ссылке: https://github.com/sdf1979/YellowViewer

При первом открытии каталога с файлами ТЖ анализируются и индексируются файлы (анализ 30Гб данных за 300 - 400 секунд, зависит от конфигурации компьютера). При последующих открытиях анализ и индексация не требуются.

См. также

Анализируем SQL сервер глазами 1С-ника

HighLoad оптимизация Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих зааросов на sql, ожиданий, конвертация запроса в 1с и рекомендации где может тормозить

1 стартмани

15.02.2024    7636    158    ZAOSTG    67    

96

Удаление строк из таблицы значений различными способами с замером производительности

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    5977    doom2good    48    

63

Опыт оптимизации 1С на PostgreSQL

HighLoad оптимизация Бесплатно (free)

При переводе типовой конфигурации 1C ERP/УТ/КА на PostgreSQL придется вложить ресурсы в доработку и оптимизацию запросов. Расскажем, на что обратить внимание при потерях производительности и какие инструменты/подходы помогут расследовать проблемы после перехода.

20.11.2023    8868    ivanov660    6    

76

ТОП проблем/задач у владельцев КОРП лицензий 1С на основе опыта РКЛ

HighLoad оптимизация Бесплатно (free)

Казалось бы, КОРП-системы должны быть устойчивы, быстры и надёжны. Но, работая в рамках РКЛ, мы видим немного другую картину. Об основных болевых точках КОРП-систем и подходах к их решению пойдет речь в статье.

15.11.2023    5105    a.doroshkevich    20    

72

Магия преобразований: ЖР, ТЖ, RAS/RAC, логи - универсальное решение Vector

Мониторинг Журнал регистрации Технологический журнал Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

13.11.2023    2967    4    AlexSTAL    0    

42

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    16184    skovpin_sa    14    

98

«Монитор» – простой анализ производительности

Администрирование СУБД Технологический журнал Бесплатно (free)

Для расследования проблем производительности недостаточно просто проанализировать технологический журнал. Нужен парсинг контекста событий, его сопоставление с информацией из Extended Events и логов, агрегация огромного количества информации.

21.09.2023    5722    Andreynikus    14    

79
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. cleaner_it 220 14.09.21 04:08 Сейчас в теме
Как выглядит результат анализа взаимоблокировки?
2. sdf1979 194 14.09.21 07:37 Сейчас в теме
Отсортированные события ТЖ источника и жертвы приводящие к взаимоблокировке (SDBL - начало транзакции, TLOCK и TDEADLOCK)
3. ttt1380 14 18.06.22 18:06 Сейчас в теме
Добрый день!
Почему-то при указании верхнего каталога ТЖ, не чего не происходит. Просьба прокомментировать что ни так?
Если открывать каталог rphost конкретного, то там файлы считываются.
4. sdf1979 194 19.06.22 12:13 Сейчас в теме
(3)Добрый день!
Можете привести полный путь до каталога, с которым проблемы?
5. ttt1380 14 19.06.22 22:47 Сейчас в теме
(4) Сегодня снова попробовал нормально прочитал, настройки журнала правда другие были. Поэтому спасибо, пока отбой
6. aap290680 08.07.22 14:06 Сейчас в теме
Как в строке поиска отобрать события за период?
7. aap290680 08.07.22 14:39 Сейчас в теме
(6) вот так получилось: Time > "08.07.22 15:00:00" and Time < "08.07.22 15:05:29" !
8. sdf1979 194 08.07.22 21:29 Сейчас в теме
(6)
Переменные строки поиска:
Time=[Время], возможны операторы сравнения =, >=, <=, <>
Event="[ИмяСобытия]", возможны операторы сравнения =, >=, <=, <>, LIKE
Usr="[ИмяПользователя]", возможны операторы сравнения =, >=, <=, <>, LIKE
t:connectID=[НомерСоединения], возможны операторы сравнения =, >=, <=, <>
SessionID="[Сеанс]", возможны операторы сравнения =, >=, <=, <>, LIKE

Примеры строки поиска:
1. По значению события EXCP
Event="EXCP"
2. По имени пользователя
Usr="DefUser"
3. По части имени пользователя
Usr LIKE "DefUser%"
4. По соединению
t:connectID=2225
5. По сеансу
SessionID="1569"
6. По значению события EXCP и период с 1:00 до 2:00
Event="EXCP" AND Time>="24.05.21 01:00:00" AND Time<="24.05.21 02:00:00"
9. aap290680 12.07.22 14:38 Сейчас в теме
(8) Спасибо за ответ, а с точностью до секунды можно сделать? Если добавить в условия несуществующее поле, то выводится текст запроса и в нем видно, что секунды занулены.
10. sdf1979 194 12.07.22 17:02 Сейчас в теме
(9)
И до секунды и до миллисекунд можно (по крайней мере делал).
11. aap290680 13.07.22 08:58 Сейчас в теме
(10) Кажется при парсинге даты нарушен порядок или я некорректно ввожу дату с миллисекундами, ввожу: "Time >= "08.07.22 14:58:09.000000" and Time <= "08.07.22 14:58:10.880000"", получаю события с датами: 08.07.22 14:15:14.978000 и 08.07.22 14:15:14.978002, см. скриншот
Прикрепленные файлы:
12. aap290680 13.07.22 09:01 Сейчас в теме
(10) А если ввожу "Time >= "08.07.22 14:18:09.000000" and Time <= "08.07.22 14:18:10.880000"" то выводятся события правильно с 08.07.22 14:18:09.863001 по 08.07.22 14:18:09.941003
13. aap290680 13.07.22 14:56 Сейчас в теме
(10) Прошу прощения, не прочитал, что вы это исправили в версии от 2 ноября 2021 года. Скачал новую версию, все работает! Большое спасибо за продукт.
14. sdf1979 194 13.07.22 16:44 Сейчас в теме
(13)
Спасибо что сообщили об исправлении, а то планировал исправлять :-)
15. aap290680 13.07.22 17:23 Сейчас в теме
(14) Почему на таком событии TTIMEOUT при попытке анализа блокировки падает приложение:
06.07.22 11:03:14.784000-0,TTIMEOUT,5,process=rphost,p:processName=ХХХ,OSThread=6072,t:clientID=59173,t:applicationName=BackgroundJob,t:computerName=ХХХ,t:connectID=68873,SessionID=204996,Usr=DefUser,WaitConnections=68730,Context='
ОбщийМодуль.ХХХ.Модуль : 731 : БлокировкаДанных.Заблокировать();'

06.07.22 11:03:14.784002-20013985,TLOCK,4,process=rphost,p:processName=ХХХ,OSThread=6072,t:clientID=59173,t:applicationName=BackgroundJob,t:computerName=ХХХ,t:connectID=68873,SessionID=204996,Usr=DefUser,Regions=InfoRg35926.DIMS,Locks='InfoRg35926.DIMS Exclusive Fld35927=379:a9490050568e42b411ecfc4ff6ecf829 Fld37479=""',WaitConnections=68730,connectionID=61ef16da-c6c0-479e-a3f0-b96cd2e9a834,Context='
ОбщийМодуль.ХХХ.Модуль : 731 : БлокировкаДанных.Заблокировать();'

причину блокировки руками нашел, вот она как выглядит:
06.07.22 11:02:31.480140-6,TLOCK,4,process=rphost,p:processName=ХХХ,OSThread=5468,t:clientID=59030,t:applicationName=BackgroundJob,t:computerName=ХХХ,t:connectID=68730,SessionID=204944,Usr=esb,Regions=InfoRg35926.DIMS,Locks='InfoRg35926.DIMS Exclusive Fld35927=379:a9490050568e42b411ecfc4ff6ecf829 Fld37479=""',WaitConnections=,Context='
ОбщийМодуль.ХХХ...
ОбщийМодуль.ХХХ.Модуль : 588 : НаборЗаписей.Записать(ИСТИНА);'
16. sdf1979 194 13.07.22 19:01 Сейчас в теме
(15) Для расследования управляемых блокировок нужен следующий шаблон по событиям. Вы собирали по такому шаблону?
<log location="&LOGS_DIR;\TLOCKS" history="3">
<event>
<eq property="Name" value="TLOCK"/>
</event>
<event>
<eq property="Name" value="TTIMEOUT"/>
</event>
<event>
<eq property="Name" value="TDEADLOCK"/>
</event>
<event>
<eq property="Name" value="SDBL"/>
<eq property="Func" value="BeginTransaction"/>
</event>
<property name="all"/>
</log>
17. aap290680 13.07.22 19:10 Сейчас в теме
(16) Я не сам настраиваю журнал, админы это делают, поэтому точно не могу сказать, что настроен по шаблону такому. По всем остальным событиям прога не вылетает, выдает и событие блокировки и жертву, а приведенное выше событие при попытке анализа выбивает прогу.
Оставьте свое сообщение