gifts2017

Свертка/обрезка базы 1С 8.1 под SQL. (Граната для обезьяны)

Опубликовал Mikls (mikls) в раздел Обработки - Свертка базы

Возникла очередная необходимость свернуть/обрезать сильно распухшие базы 1С УПП и УТ. Первый раз это делалось в консоли самой SQL обрабатывая каждую таблицу вручную. Забыл упомянуть, предприятие работает в режиме 24/7, и потому необходимо было все делать на ходу и не сильно блокируя пользователей. Сначала написал простенькую обработку по формированию строки t-sql из 1С и её выполнению, а потом это разрослось до выложенной обработки. По-любому в ней полно косяков, но размеры баз удалось сократить на порядок с 200 до 20 гиг каждую.

В первый же строчках хочу предупредить, об опасности использования данной обработки, её действия деструктивны, испытывайте на кроликах или просто таскайте куски кода.

По первым четырем полям обработки наверняка все понятно, это соединение с базой на сервере.

Если эти поля заполнены верно, то после нажатия кнопки "Обновить" в табличную часть выведется информация по таблицам базы данных отсортированная в порядке уменьшения занимаемого размера в килобайтах. Сортировка позволяет оптимизировать ваше время и не заниматься легкили таблицами сразу взявшись за монстров и уменьнив базу за первый день в 2-3 раза.

При активации строки таблицы жирным шлифтом выводится информация и минимальной дате записей в в базе по текущей строке и если это регистр остатков, то дата расчитанных итогов.

Поле "Мин.дата для р.сведений" не сосвем соответвует названию. Именно на эту дату до времени 00:00 будут удалены записи в sql таблице.

Флаг переносить остатки активирует кусок кода, отвечающий за ввод сальдо по регистру остатков. А именно, в нашей конфигурации есть документ фактически без каких либо реквизитов, но являющийся регистратором для любого вида движений. На дату обрезки снимаются остатки, создается документ регистратора остатков, записываются сами остатки, как приходное движение и этот документ скидывается в корень диска "С:" вашего компа в виде xml файла. Сразу после записи файла движения документа удаляются, дабы нормализовать остатки и минимизировать время базы с неактуальными остатками. После удаления строк таблицы базы документ вновь водружается на свое законное место из файла вместе со своими остатками. А вот дальше есть неприятный момент, текущие остатки увеличились на количество документа введенного сальдо. Необходиме пересчитать итоги. И вновь в следствии минимальной блокировки пользователей, пришлось пересчитывать итоги постепенно, помесячно, с паузами. При не установленной галочке "Не пересчитывать итоги" обработка начнет помесячно устанавливать дату расчитанных итогов на минус 2 года назад и затем обратно на текущую дату. Если итоги вам не критичны, можете установить галочку "не пересчитывать итоги" и заняться этим позже, нажимая кнопки на нижней панели. 

Также, если вас вообще не интересуют остатки по текущему регистру накопления можете вообще не переносить остатки (не ставить галочку), бывают и такие регистры.

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

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

Все запросы к sql выводятся в строку сообщений.

 

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

PPS. Для уменьшения времени блокировки базы записи удаляются по 1000 строк. И еще, в случае проблемы при обрезке (вылет, отключение света) если вы используете перенос остатков, то сохраненный xml можно без труда втягивать в базу при любой необходимости буквально двумя строчками кода (смотрите в обработке). Такое же водружение остатков на место можно сделать и из резервной базы, наверняка уже лежащей у вас рядом для страховки.

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

Наименование Файл Версия Размер
СверткаБазы.epf 4
.epf 13,42Kb
09.06.16
4
.epf 13,42Kb Скачать

См. также

Вознаграждение за ответ
Сумма: 0 $m
Добавили:
Наташа _______ (astra94) (1.00 $m)
Подписаться Добавить вознаграждение

Комментарии

1. Наташа _______ (astra94) 26.02.14 05:24
Спасибо за интересную идею ! а то при таких объемах, страшно было даже браться....
2. Dimon (klel) 26.02.14 08:42
Большое спасибо за обработку, надо будет посмотреть и воспользоваться а то база уже за 200 перевалила, нужно что то делать =)
3. Борис (soap) 28.02.14 15:55
Спасибо оч. полезная идея.
4. Артем Сизов (sizeoff) 26.03.14 17:33
А под УФ такой обработки не планируется ?
Прикрепленные файлы:
5. Mikls (mikls) 04.04.14 09:18
(4) sizeoff, Пока не планируется, но сам обычно для таких случаев завожу толстого админа и под ним пользуюсь старыми обработками.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа