Растет как на дрожжах - сказ о поиске причины роста базы

28.02.23

База данных - Инструменты администратора БД

Статья посвящается разбору проблемы с таблицей `_SystemSettings`: неконтролируемый рост объёма и причины, его вызывающие. К статье прилагается полезная обработка для детального анализа настроек и чистки таблицы средствами 1С.

Постановка задачи

Попалась на решение следующая задача: после перехода на 1С:Документооборот 3.0 база начала "пухнуть" - прирост идет +1 гб за один рабочий день. Платформа: 8.3.20.2180.

 

Подход к решению

Начинаем с анализа размера таблиц в СУБД. В топ вырвалась _SystemSettings, как по размеру, так и по динамике роста.

 

 

Причины роста

Подход к решению описан в теме на форме - вот ссылка. Причина роста таблицы - сохранение миллионов настроек из-за ошибок настройки формы или ошибок в коде.

1. Ошибка настроек. У формы есть два булевских свойства:

АвтоНавигационнаяСсылка - при каждом открытии генерирует новую навигационную ссылку 

АвтоматическоеСохранениеДанныхВНастройках - при закрытии сохраняет настройки формы в хранилище системных настроек

Если включить оба этих свойства, то при каждом вызове будет генерироваться новая навигационная ссылка, а при закрытии - по этой навигационной ссылке будут сохраняться настройки. Это приведёт к сохранению в базу данных миллионов записей вида: ...0978abfb_8f52_4070_aa7e_849dbe44c184/НастройкиОкна, которые никогда не будут считаны. (спасибо AllexSoft за подробный анализ проблемы).

2. Ошибки в коде - когда программный код является источником генерации подобного количества новых записей.

 

Порядок решения

Решение проблемы состоит из 3-х частей:

  1. Найти проблемные формы
  2. Исправить настройки или код
  3. Очистить "мёртвый груз" и провести регламенты на СУБД

Для анализа и исправления уже сделано много наработок коллегами:AllexSoft, TigerPXN и klinval. Я взял наработки коллег и объединил в одну обработку для повышения удобства использования. В конце статьи приведена ссылка на гитхаб, где лежат исходники. Кратко расскажу, как ей пользоваться созданной обработкой "Работа с системными настройками". 

 

 

"Анализ" - помогает найти проблемные настройки

  • читает настройки из базы (если выбран пользователь - будет установлен доп. отбор по пользователю);
  • выводит настройки на вкладку "Результаты анализа"; максимальное кол-во выводимых записей задаётся реквизитом "Обработать записей (max.)"
  • Подсчитывает количество записей, подходящие под указанные в таблице "Шаблоны поиска и удаления записей" шаблоны
    • Таблица предзаполнена шаблонами по ранее встречавшимся кейсам.

 

 

 

Подменю "Очистка настроек"

  • "Удалить с учетом шаблонов" - удаляет записи, которые подходят к одному из шаблонов, для которого в колонке "Удалить" в таблице "Шаблоны поиска и удаления записей" стоит признак "Истина". Количество удаляемых записей ограничено размером порции, указанной в настройке "Порции для удаления".
  • "Очистить историю работы пользователей" - очищает таблицу ИсторияРаботыПользователя.ОчиститьВсе().
  • "Очистить настройки несуществующих пользователей" - удаляет настройки пользователей, которые помечены на удаление или которых нет в справочнике "Пользователи"
  • "Удалить все настройки (без применения шаблонов)" - просто удаляет все настройки. Ограничено размером порции, указанной в настройке "Порции для удаления".

 

Благодарности, ссылки и использованные источники

Основной источник информации - тема на форуме: Как сократить размер таблицы _SYSTEMSETTINGS и почему она растет?

"Мы – только лишь карлики, стоящие на плечах гигантов". Отдельная благодарность камрадам: AllexSoft, TigerPXN и klinval за то, что поделились своими наработками.

Исходники разрабатываемой обработки лежат тут.

 

Заключение

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

1. Статьи про описание данной проблемы и способы её решения нет, а собирать информацию пробегаясь по форуму - не всегда хочется.

2. В теме на форуме обработки разделены и не были собраны в единый инструмент. А раз уж я всё это объединил - грех не поделиться. 

Спасибо за прочтение. С уважением, Вдовенко Сергей.

_SystemSettings таблица

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

14400 руб.

06.12.2023    3768    20    1    

42

Infostart УДиФ: Управление данными и формами 1С

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

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4730    12    2    

38

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2280 руб.

14.01.2013    178931    1085    0    

862

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    28171    83    146    

61

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11898    5    9    

7

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61625    90    59    

74

Конфигурация Session Monitor

Мониторинг Инструменты администратора БД Платформа 1С v8.3 Россия Платные (руб)

Конфигурация Session Monitor предназначена для мониторинга сервера 1С с целью отслеживания чрезмерной нагрузки от конкретных сеансов и скорости реакции рабочих процессов.

1500 руб.

01.12.2020    14461    35    0    

50

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    11238    5    8    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. AllexSoft 28.02.23 12:32 Сейчас в теме
не ожидал что еще та моя тема актуальна до сих пор)
Обработка по поиску таких случаев супер, пригодилась бы тогда
2. SerVer1C 763 28.02.23 14:50 Сейчас в теме
Тема интересная, но где и когда она проявляется? Только что проверил на ФормеСписка РегистраСведений - включены "АвтоНавигационнаяСсылка" и "АвтоматическоеСохранениеДанныхВНастройках" - лишних записей по данной форме в настройках нет (всегда только 6 записей в моем случае). Платформа 8.3.20.1914. Встречал базы с большими таблицами "_SystemSettings", но может они наполнялись на старых платформах ?
3. AllexSoft 28.02.23 16:15 Сейчас в теме
(2) надо что бы какие то данные форм были сохраняемые, какой то реквизит формы у которого стоит Сохранять
4. SerVer1C 763 28.02.23 16:17 Сейчас в теме
(3) Так это понятно. Так и есть. Но новые записи по данной форме НЕ создаются.

Если включить оба этих свойства, то при каждом вызове будет генерироваться новая навигационная ссылка, а при закрытии - по этой навигационной ссылке будут сохраняться настройки. Это приведёт к сохранению в базу данных миллионов записей вида: ...0978abfb_8f52_4070_aa7e_849dbe44c184/НастройкиОкна, которые никогда не будут считаны.

Судя по этому высказыванию, механизм сохранения настроек НЕ должен работать вообще.
5. AllexSoft 28.02.23 16:27 Сейчас в теме
(4) ну раньше он работал точно.. сейчас не знаю как обстоит ситуация с актуальными платформами
6. SerVer1C 763 28.02.23 16:30 Сейчас в теме
(5) Сейчас тоже работает.
7. SerVer1C 763 28.02.23 16:31 Сейчас в теме
Думаю, что автору необходимо провести более подробное исследование возникновения проблемы, а не наводить панику.
8. zeltyr 570 28.02.23 19:09 Сейчас в теме
(7) В проблемной базе была форма справочника со включенными настройками и записей в таблице было порядка ~3 млн. Поэтому и сделал вывод, что проблема этих двух настроек осталась. Возможно поторопился. Вводить в заблуждение точно никого не хотел. Представиться возможность - детальнее перепроверю.
Оставьте свое сообщение