Сжатие БД после удаления данных

1. НовенькийЯ 10.03.25 09:12 Сейчас в теме
Добрый день.
Есть типовая ЗУП.
Релиз ЗУПа думаю смысла не имеет
Релиз платформы - 8.3.25.1546
Было удалено 2 организации из трех, это практически 90-95% от общего объема данных, все регистры, документы и справочники.
После сделано ТиИ с проверкой на битые ссылки, реструктуризацией и сжатием.
По итогу, вместо того что бы получить маленькую базу с оставшимися данными, на выходе получилась база еще большего размера чем первоначальная.
Почему так происходит?
Неужели удаленные(именно удаленные, не помеченные на удаление) данные не удаляются из базы, или вместо них теперь какой то мусор в таблицах хранится?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2107191 10.03.25 09:26 Сейчас в теме
(1)
на выходе получилась база еще большего размера чем первоначальная.
Ага, добавились транзакции по удалению данных ))
Шринковать надо, шринковать.
Но сначала пусть пара бэкапов пройдет, торопиться некуда.
NicolasCage; Sashares; +2 Ответить
3. НовенькийЯ 10.03.25 09:33 Сейчас в теме
Это файловая база, так что шринковать особо нечего.
4. user2107191 10.03.25 09:41 Сейчас в теме
(3) Какие еще важные особенности не рассказал?
5. Sashares 33 10.03.25 09:45 Сейчас в теме
(3) А если выгрузить в dt и загрузить обратно, есть какие-то отличия в размере?
6. booksfill 10.03.25 09:45 Сейчас в теме
(3)
Это файловая база, так что шринковать особо нечего.


Проверить, что у вас не осталось помеченных на удаление объектов.

Потом.
Вариант 1. Выгрузка/загрузка через dt с предварительным бэкапом.

Вариант 2. РИБ - все в дочернюю базу. Отключаем от РИБ. ТИС. Пользуемся дочерней.

Вариант 3. dt - MS SQL - dt. Рискованный, из-за возможного преобразования типов данных. Не помню, что там было, кажется что-то с точностью.
По превышению допустимого размера таблиц вывалиться не должны, но все равно лучше, так не надо.
Хотя народ делает, даже видеоролик сейчас нашел.
7. НовенькийЯ 10.03.25 10:02 Сейчас в теме
1 - РИБ нет.
1.1 синхронизация с БП - только по одной организации, так что все удаленные объекты в выгрузку не попали
2 - помеченных на удаление объектов больше не осталось, все удали.
3 - выгрузка в ДТ тоже стала больше, поэтому выгрузка/загрузка через ДТ думаю не поможет, но проверю сегодня это предположение
4 - перенос базу на скуль, ТиИ, шринк, выгруззка в ДТ и оттуда опять файловую развернуть - попробую сегодня
8. Vseznaika 10.03.25 11:25 Сейчас в теме
Ответа на вопрос не знаю, но к Вашему вопросу присоединяюсь. У меня тоже самое - после удаления база становится еще больше (ну или меньше не становится). Напишите, пожалуйста, сюда если получится ужать и каким способом получилось. Буду благодарен. База именно файловая. Ужимать через SQL сервер и обратно - это какой-то жуткий вариант. Очень жаль, если он окажется единственным.
9. nomad_irk 81 10.03.25 11:34 Сейчас в теме
(8) В конфигураторе: Администрирование - Тестирование и исправление - Сжатие таблиц информационной базы не помогает?
Прикрепленные файлы:
NicolasCage; +1 Ответить
10. НовенькийЯ 10.03.25 12:46 Сейчас в теме
И так
после переноса на СКЛ + сжатие базы средствами СКЛ + ТиИ(Сжатие таблиц в том числе) + выгрузка в dt = размер ДТшника почти не изменился, размер базы тоже.

База попала мне уже в DT формате, задача была удалить данные по двум организациям из трех. При этом какой то горе программист до этого очень оригинальным способом решил удалить организации - тупо удалил их в конфигурации без проверки. А что бы не было битых ссылок в базе в конфигураторе запусти ТиИ с очисткой битых ссылок. Ну естественно ЗУП не потерпел такой наглости и большинство доков перестали проводиться. Вот собственно базу и отдали мне на восстановление, точнее удаление мусора.
Все данные вычистил, обратно "свернул" DTшник и удивился. Ко мне попал файл 1,767гб, а от меня уходит файл 1,769гб - при этом удалено реально более 90% всех данных из базы

После манипуляций со скулем ДТшник стал весить 1,737гб. и это для типовой ЗУП практически без документов.

Кто помнит времена 1С 7.7 там тоже было удаление объектов, но при этом они оставались а файлах БД, ни куда не исчезали, просто ставилась пометка о том что эти данные удалены. И только после того как в конфигураторе запускаешь ТиИ, только тогда данные удалялись бесследно. Вот думаю, может и сейчас так же.

Стало интересно, на досуге займусь переносом обеих баз в скуль(до удаления и после) и попробую отследить в каких таблицах что уменьшилось или прибавилось по количеству данных.
Vseznaika; +1 Ответить
11. booksfill 10.03.25 13:14 Сейчас в теме
(10)
размер ДТшника почти не изменился, размер базы тоже

На SQL серере смотрите какая таблица сколько занимает.
Что-то тут не так. Выглядит как если бы вы на самом деле ничего не удалили.

Попробуйте
use ВАЩА_БАЗА;
IF OBJECT_ID('tempdb..#result', 'U') IS NOT NULL
DR OP TABLE #result;

CRE ATE TABLE #result
(
ID INT IDENTITY(1, 1)
, name NVARCHAR(255)
, rows BIGINT
, reserved NVARCHAR(255)
, data NVARCHAR(255)
, index_size NVARCHAR(255)
, unused NVARCHAR(255)
)

DECLARE @SQL NVARCHAR(MAX) = '';

SEL ECT @SQL+='EXEC sp_spaceused '''+S.name+'.'+T.name+''';'
FROM sys.tables AS T
INNER JOIN sys.schemas AS S ON S.schema_id=T.schema_id

INS ERT INTO #result
EXEC (@SQL);

SELE CT * FR OM #result
ORDER BY rows DESC

Думаю, натолкнет на какие-то мысли.
Оставьте свое сообщение

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