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

04.11.21

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Архив с программой просмотра файлов, readme, пример файла настроек сбора ТЖ
.zip 1,35Mb
30
30 Скачать (1 SM) Купить за 1 850 руб.
Архив исходных кодов программы просмотра файлов ТЖ
.zip 3,84Mb
2
2 Скачать (10 SM) Купить за 4 550 руб.

Обновление 04.11.2021

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

Обновление 21.09.2021

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

 

Основное

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

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

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

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

См. также

HighLoad оптимизация Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    4710    spyke    28    

48

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

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

2 стартмани

15.02.2024    11342    218    ZAOSTG    75    

113

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

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

09.01.2024    11447    doom2good    49    

71

HighLoad оптимизация Системный администратор Программист Бесплатно (free)

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

20.11.2023    12264    ivanov660    6    

80

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

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

15.11.2023    6595    a.doroshkevich    22    

74

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

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

1 стартмани

13.11.2023    4299    9    AlexSTAL    0    

47
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. cleaner_it 221 14.09.21 04:08 Сейчас в теме
Как выглядит результат анализа взаимоблокировки?
2. sdf1979 205 14.09.21 07:37 Сейчас в теме
Отсортированные события ТЖ источника и жертвы приводящие к взаимоблокировке (SDBL - начало транзакции, TLOCK и TDEADLOCK)
3. ttt1380 14 18.06.22 18:06 Сейчас в теме
Добрый день!
Почему-то при указании верхнего каталога ТЖ, не чего не происходит. Просьба прокомментировать что ни так?
Если открывать каталог rphost конкретного, то там файлы считываются.
4. sdf1979 205 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 205 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 205 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 205 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 205 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) Я не сам настраиваю журнал, админы это делают, поэтому точно не могу сказать, что настроен по шаблону такому. По всем остальным событиям прога не вылетает, выдает и событие блокировки и жертву, а приведенное выше событие при попытке анализа выбивает прогу.
Оставьте свое сообщение