Разделение Баз Данных

1. LarisaF 18.09.20 09:47 Сейчас в теме
Была база данных (БД) централизованной бухгалтерии (в составе 5 бюджетных учреждений (БУ)). Произошла децентрализация учета.
Подскажите, пжлста, как из БД удалить все документы по 4 БУ за 3 года.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. TODD22 18 18.09.20 10:15 Сейчас в теме
(1)
Подскажите, пжлста, как из БД удалить все документы по 4 БУ за 3 года.

1. С помощью обработки пометить на удаление все данные по одной организации и удалить их.
2. Сделать РИБ, выгрузить организации в узлы и отвязать их от РИБа.
3. Удалить их с помощью обработки которая генерирует код для SQL сервера.

Не так давно разделял базы. 1 и 2 способы результата не дали, документооборот большой, что удаление данных, что выгрузка данных в узлы РИБа очень на долго задумывались...

Помог третий способ.
6. oleg-x 27 18.09.20 10:36 Сейчас в теме
(3) Писал обработку, которая просто все удаляла без проверки. Это не так быстро как через SQL, но зато быстрее, чем через стандартное удаление.
2. LarisaF 18.09.20 10:12 Сейчас в теме
4. mushdaj 18.09.20 10:17 Сейчас в теме
Я бы рассмотрел 2 варианта:
1. Свернуть и выгрузить справочники и остатки в чистую базу
2. Создать РИБ и выгрузить в подчиненный узел данные по нужной организации, а потом отвязать.

вариант именно с удалением возможен, но потребует много ручной обработки.
5. LarisaF 18.09.20 10:20 Сейчас в теме
Спасибо большое....Попробую
7. пользователь 23.09.20 10:33
Сообщение было скрыто модератором.
...
8. LarisaF 29.09.20 12:50 Сейчас в теме
А если выполнить свертку базы по ненужным БУ с последующим удалением помеченных на удаление объектов, это чем то чревато для оставшегося БУ (возможно были безвозмездные передачи между БУ внутри ЦБ через 30406, например)
9. TODD22 18 29.09.20 13:13 Сейчас в теме
(8)Тем что если объём данных большой то они могут долго удалятся типовым механизмом удаления.
10. oleg-x 27 29.09.20 13:33 Сейчас в теме
(8) Для примера, что бы отделить одну организацию в нашей базе от остальных, удаляли все и вся что не связано с основной. Удаляли без проверки ссылочной целостности. Так вот, такое удаление занимало 12 часов, это просто операция удаления. А если по каждому объекту проверять, так вообще устанете ждать.
11. user2034110 04.01.24 01:41 Сейчас в теме
В свое время промучился с сильно дописаной базой ЗУП. В базе велся учет по 5 юр. лицам. Типовой юридический и самописный управленческий(много доп. справочников и документов). Плюс множество обменов со всем, что только можно было прикрутить.
Нужно было разделить этот ЗУП на 5 отдельных БД.
Пытался поначалу удалять данные консолью разработчика. Но даже на этапе начального контроля ссылок, отдельно выделенный сервер приложений с 32Гб падал с ошибкой нехватки оперативной памяти.
Пришлось написать обработку, которая перегоняет в БД SQL полную структуру базы ЗУПа с указанием связей между всеми таблицами.
Вторым шагом провел анализ данных, которые нельзя трогать, добавил исключения, настроил правила. Это самый трудозатратный этап, как и проверка данных после чистки базыю
Написал скрипт на t-sql, который удаляет данные в рекурсии по всем взаимосвязям по каждой таблице. Глубина рекурсивных вызовов правда ограничена 32-мя, но я с этим ограничением сталкивался только, если справочник ссылался сам на себя. Такие добавляются в исключения.
Скрипту достаточно было скормить список элементов любой таблицы, которые нужно удалить из базы, и он примерно за 16 минут успешно вычистил базу 90Гб, оставив данные только по одной Организации.
В итоге я получил документы с частично пустыми строками, если в одном документе были внесены сотрудники разных Организаций.
6 часов тестирования/исправления базы данных средствами конфигуратора с пересчетом итогов и красота! Чистая, сжатая база с чистыми документами без пустых строк. Итоги по всем регистрам сошлись с первого раза.
Процедуру деления и тестирования/исправления повторил для каждой Организации достаточно быстро, т.к. правила удаления данных для всех были одинаковы.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот