Удаление данных регистра сведений средствами SQL
Здравствуйте
Можно ли без последствий удалить данные регистра сведений напрямую в базе средствами SQL?
Все данные там по сути не нужны и можно удалить все. Вопрос в том не поломается ли после этого что то?
В регистре относительно много данных, примерно 35 гигов.
штатными средствами пробовал сделать, но tempdb начинает разрастаться, кончается место на диске. После перезапуска mssql server база уходит в режим восстановления.
Можно ли без последствий удалить данные регистра сведений напрямую в базе средствами SQL?
Все данные там по сути не нужны и можно удалить все. Вопрос в том не поломается ли после этого что то?
В регистре относительно много данных, примерно 35 гигов.
штатными средствами пробовал сделать, но tempdb начинает разрастаться, кончается место на диске. После перезапуска mssql server база уходит в режим восстановления.
По теме из базы знаний
- Очистка базы (частичная) средствами SQL (реализована возможность очистки средствами 1С)
- Очистка базы средствами SQL (от 8.1 до 8.3)
- Альтернативный контроль помеченных и быстрое удаление средствами SQL
- Быстрое удаление проводок и пометка удаления документов средствами MSSQL
- Надежная регистрация изменений. Версионирование объектов. Аудит. Все средствами SQL Server
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Если зависимый:
штатными средствами пробовал сделать
Если регистр независимый, тоНабор = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей();
Набор.ОбменДанными.Загрузка = Истина;
Набор.Записать();
Набор = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей();
Набор.ОбменДанными.Загрузка = Истина;
Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ Регистратор ИЗ РегистрСведений.МойРегистр");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Набор.Отбор.Регистратор.Установить(Выборка.Регистратор);
Набор.Записать();
КонецЦикла;
Вообще регистр сведений самое безобидное метаданное из всех, скорее всего все будет хорошо. Но как всегда надо пробовать и проверять
Если удалять полностью, можно truncate table вместо delete, сильно быстрее получится
Можно попробовать удалить метаданное из конфигуратора и потом добавить загрузив cf. Может получится быстро и штатными средствами)
Если удалять полностью, можно truncate table вместо delete, сильно быстрее получится
Можно попробовать удалить метаданное из конфигуратора и потом добавить загрузив cf. Может получится быстро и штатными средствами)
Если пытаетесь удалять штатными средствами такой объем, желательно делать это с отборами, т.е. небольшими порциями (если это возможно), скорее всего проще будет свою обработку писать вместо штатных.
Только перед этим:
- Оптимально было бы написать обработку, которая выбрала бы из регистра все объекты ссылочного типа и сразу нашла зависимости, так хоть понятно будет что потенциально может "посыпаться" в случае прямого удаления, т.е. как-то постараться предусмотреть последствия.
- Не лишним будет так же в конфигурации посмотреть через глобальный поиск посмотреть где в коде есть ссылки на этот регистр, опять же для перестраховки, м.б. неведомый код неожиданно берет из него данные (вдруг).
И если все же решитесь трункейтиь таблицу, обратите внимание на то, что у регистра сведений может быть не одна таблица в SQL, если он периодический.
Только перед этим:
- Оптимально было бы написать обработку, которая выбрала бы из регистра все объекты ссылочного типа и сразу нашла зависимости, так хоть понятно будет что потенциально может "посыпаться" в случае прямого удаления, т.е. как-то постараться предусмотреть последствия.
- Не лишним будет так же в конфигурации посмотреть через глобальный поиск посмотреть где в коде есть ссылки на этот регистр, опять же для перестраховки, м.б. неведомый код неожиданно берет из него данные (вдруг).
И если все же решитесь трункейтиь таблицу, обратите внимание на то, что у регистра сведений может быть не одна таблица в SQL, если он периодический.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот