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

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 таблица

См. также

SALE! 15%

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7765    55    22    

66

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    8841    42    5    

73

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10412    36    20    

61

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    187971    1138    0    

912

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

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

14400 руб.

29.04.2020    32666    106    152    

73

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

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

4200 руб.

10.11.2015    62814    94    59    

79

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

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    72787    625    45    

84

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

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    9831    7    4    

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

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

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