Растет размер БД при удалении данных из регистра накопления

1. TVA_11 09.04.24 08:24 Сейчас в теме
Здравствуйте!
Удаляю старые данные из регистра.
Итог, растет и размер таблицы и размер индекса.
Запускаю тестирование исправление размер БД удваивается.
Потом на SQL запускаю сжатие пустого места, и все встает в норму.

Может удалять из регистра накопления надо как-то иначе?

	Для каждого ДТ из ТД Цикл

		НаборЗаписей = РегистрыНакопления.ЗаказыПокупателей.СоздатьНаборЗаписей();
	        НаборЗаписей.ОбменДанными.Загрузка = Истина;			
		
		НаборЗаписей.Отбор.Регистратор.Установить(ДТ.Регистратор);
		НаборЗаписей.Записать(истина); 
		
	КонецЦикла;
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
2. nomad_irk 76 09.04.24 08:31 Сейчас в теме +0.03 $m
(1)При удалении записей из таблицы, они физически остаются, но помечаются как неиспользуемые и удаляются только в случае сжатия таблиц средствами СУБД.

Сжатие таблиц средствами СУБД не рекомендуется из соображения производительности. Неиспользуемые записи в таблицах автоматически замещаются новыми.
user1671936; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 09.04.24 08:31 Сейчас в теме +0.03 $m
(1)При удалении записей из таблицы, они физически остаются, но помечаются как неиспользуемые и удаляются только в случае сжатия таблиц средствами СУБД.

Сжатие таблиц средствами СУБД не рекомендуется из соображения производительности. Неиспользуемые записи в таблицах автоматически замещаются новыми.
user1671936; +1 Ответить
3. TVA_11 09.04.24 08:37 Сейчас в теме
(2)

Возникло множество вопросов

Почему объем базы растет?
Что за средства СУБД?

Ну и главный вопрос "Что делать?"
4. nomad_irk 76 09.04.24 08:46 Сейчас в теме
(3)Потому что объем базы - это не только сами данные, но еще и журнал транзакций, который может быть размером больше сами данных.

Средства СУБД - возможности СУБД(система управления базами данных), инструменты СУБД

Делать бэкапы и обслуживание баз по регламенту средствами СУБД, размер БД - показатель не первой важности.
5. TVA_11 09.04.24 08:49 Сейчас в теме
(4)

Ну если размер больше 200 ГБ то становится критично, плюс ТИИ в таком случае на один диск не влезает и падает.
Свободного места тоже около 200 ГБ.

- Журнал транзакций у нас вне БД хранится.
6. nomad_irk 76 09.04.24 08:51 Сейчас в теме
(5)Так позаботьтесь о свободном месте, если уж вы оперируете базами в 200ГБ, стоимость 1ГБ дискового пространства не большая на данный момент.
7. TVA_11 09.04.24 08:54 Сейчас в теме
(6)

Короче, ваш совет выхода нет. Только экстенсивные методы.
8. nomad_irk 76 09.04.24 08:57 Сейчас в теме
(7)Так вы решите для себя: нужны ли вам все те 200ГБ внутри БД или можно сделать свертку БД, например, и оставить последние 3 года

Удалять данные из какого-то пусть даже большого регистра и больше ничего не делать - такое себе освобождение места.

Мой совет: оставьте объем базы в 400ГБ и не занимайтесь как бы это по-культурнее сказать......бесполезными фрикциями.
lefthander; +1 Ответить
11. TVA_11 09.04.24 09:28 Сейчас в теме
(8) Пока решили, что данные в регистрах не нужны, их и удаляем.

Заморочек много выходит.
13. nomad_irk 76 09.04.24 09:39 Сейчас в теме
(11)Значит нужен отдельный администратор БД.
9. RustamZz 09.04.24 08:59 Сейчас в теме
(7) В эпоху терабайтных дисков рассуждать о необходимости сжатия 200 ГБ баз - моветон.
lefthander; +1 Ответить
10. TVA_11 09.04.24 09:27 Сейчас в теме
(9)
Да терабайтные у нас, зеракальные, но баз много.
12. RustamZz 09.04.24 09:32 Сейчас в теме
(10) Тогда вам пора уже своего SQL Администратора заиметь. Что бы он эти вопросы решал.
14. TVA_11 09.04.24 09:41 Сейчас в теме
(12)

Так и есть Администратор
Я в 1с помечаю на удаление данные в регистрах, SQL пухнет, он ночами БД лечит.

Так то Delete - встречается в 1С.
Когда я удаляю, БД идет только - Insert

Вот и подумал, что как-то не так удаляю.
15. nomad_irk 76 09.04.24 09:49 Сейчас в теме
(14)Так пусть пухнет, как вы понять-то не можете. Чем реже происходит увеличение файла БД, тем лучше.
16. TVA_11 09.04.24 09:53 Сейчас в теме
(15)

А как 1С вызывает в БД - Delete
- Может в этом ключ к проблеме?


НаборЗаписей.ОбменДанными.Загрузка = Истина;
Может Ложь писать?

Будет медленнее, но удалять будет?
17. nomad_irk 76 09.04.24 09:56 Сейчас в теме
(16)Даже если вы вызовите DELETE, то это не уменьшит размер файла БД, о чем было сказано в (2)
18. nomad_irk 76 09.04.24 10:02 Сейчас в теме
(16)
Может Ложь писать?

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

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