Взрывной рост базы 1С в SQL

1. vkozak 25.05.21 10:57 Сейчас в теме
Вдруг за выходные база с 300 гигов выросла до 700, за прошлые сутки еще на 150.
База Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.91.36) платформа 1С:Предприятие 8.3 (8.3.18.1208) 64 бит
Серверная сервер SQL 2008 R2 64 бит
Файл транзакций в норме.
Во время роста работала обработка по загрузке данных из внешней базы ORAKL. Обработка проверенная работает не первый месяц.
Вечером попробую сжать базу средствами SQL.
Что еще можно сделать и куда посмотреть?
По теме из базы знаний
Найденные решения
3. klom 25.05.21 11:14 Сейчас в теме
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. vkozak 25.05.21 11:04 Сейчас в теме
Посмотрели в SQL размеры таблиц увидел интересную особенность:
в некоторых таблицах записей ноль, а места занимают дофига.

Что это за таблицы? Кто подскажет?
Прикрепленные файлы:
4. Leon75 25.05.21 11:21 Сейчас в теме
(2)Это не особенность. Это как кожа у 300 килограммовых людей после похудения.
Шринковать можно не только лог, можно шринковать файл данных.
Но вопрос в том, что обработка насовала в базу, а потом удалила.
6. vkozak 25.05.21 11:26 Сейчас в теме
(4)Базу и буду шринковать в первую очередь.
Авторы обработки утверждают, что не меняли в ней ни чего. На входных загрузка оборвалась аварийно, т.к. база сожрала все место на диске. Хочу понять не только как пролечить, то что свершилось.
7. nomad_irk 76 25.05.21 11:36 Сейчас в теме
(6)С точки зрения производительности, базу не нужно шринковать, лучше наоборот определить размер файла большим и приращение значимым.
8. vkozak 25.05.21 11:43 Сейчас в теме
(7)Да это тоже посмотрю, проверю. Спасибо.
15. Leon75 27.05.21 10:52 Сейчас в теме
(7)Я извиняюсь, но в случае с аварийным поведением обработки ориентироваться на инцидент в значениях параметров - звучит странно.
16. nomad_irk 76 27.05.21 11:05 Сейчас в теме
(15)Это точно ответ на мое сообщение про параметры размера файла БД и его приращения?
Если так, то параметры размера файла БД абсолютно не связаны с каким-либо инцидентом. Параметры задаются исходя из других требований.
17. Leon75 27.05.21 14:28 Сейчас в теме
(16)У человека случился инцидент. Разовый инцидент.
Размер базы вырос в два раза.

И вот ваше сообщение:
С точки зрения производительности, базу не нужно шринковать, лучше наоборот определить размер файла большим и приращение значимым.

Можно поподробнее, пожалуйста?
Я хочу понять, что вы хотели донести.
Как исходя из (1) делать (7)?
18. nomad_irk 76 27.05.21 14:37 Сейчас в теме
(17)Мой ответ был на (6), в котором ТС сообщил о своих намерениях шринкать БД, я сделал замечание по поводу шринка БД.
(7) делается не исходя, а предварительно, чтобы СУБД как можно реже выполняла операцию увеличения файла БД.
Если бы у ТС было сделано (7), то при (1) он бы не заметил увеличения БД.
19. Leon75 27.05.21 14:40 Сейчас в теме
(18)Я вас не понимаю.
Как можно сделать (7) если тебе даже в голову не может прийти результат от (1)?
20. nomad_irk 76 27.05.21 15:35 Сейчас в теме
(19)

(7) Выполняется в рамках обязанностей администратора БД при создании БД не зависимо от того, произошло (1) или нет.
То, что произошло в (1): произошло и произошло. Причину поняли, соответствующие выводы сделали, надеюсь.

Шринкать базу после проишествия (1) нет необходимости.

Так понимаю, задача "освобождения" занимаемого места решается созданием копии "пустой" таблицы и удалением таблицы-источника с последующим переименованием копии.
23. vkozak 27.05.21 19:21 Сейчас в теме
(20)Я написал, что сделал. И гораздо проще, чем Вы предлагаете.
Я ограничил длину поля. Сохранил конфигурацию и после этого шринкнул базу. Без всяких копий и удалений.
24. nomad_irk 76 27.05.21 21:24 Сейчас в теме
(23)Чтобы было понятно: операция шринка базы сильно курочит фрагментацию индексов таблиц.
22. Xershi 1490 27.05.21 15:50 Сейчас в теме
(2) таблица итогов. ТИИ или в предприятии пересчет итогов решает проблему.
3. klom 25.05.21 11:14 Сейчас в теме
5. vkozak 25.05.21 11:22 Сейчас в теме
(3)Спасибо, интересный инструмент. Раньше не пользовался.
33. unknown181538 154 29.05.21 18:28 Сейчас в теме
(5)Есть еще обработки на ИС обрабатывающие его результат, и выводящие размер таблиц для скуля.
14. vkozak 26.05.21 13:18 Сейчас в теме
(3) Спасибо klon, его подстазка помогла найти супостата.
9. starik-2005 3040 25.05.21 11:46 Сейчас в теме
Обработка скорее всего сначала грузит данные с ORAKCL'а в какой-то регистр сведений, из регистра сведений потом чем-то распихивает в документы или еще куда, потом регистр сведений удаляется. Возможно обработка валилась на чем-то, и поэтому запускалась тыщу раз, записывая данные в регистр, но не стирая их, а потом когда-то данные были стерты (но ведь при стирании данные остаются в таблице, просто помечаются, как удаленные). На выходе рост базы на тот объем, который был загружен с ORAKCL'а.

По поводу инструментов, то вроде как каждый ребенок 1С-нега уже такой написал. Даже я )))
https://infostart.ru/public/796664/ - всего одна строка кода (3).
10. vkozak 25.05.21 13:04 Сейчас в теме
(9)Не, обработка все грузит во временные таблицы. Возможно они и зависли.
11. starik-2005 3040 25.05.21 13:24 Сейчас в теме
(10)
обработка все грузит во временные таблицы
Ну а какой тогда в этой обработке смысл? Попали данные во временные таблицы и умерли смертью храбрых по окончанию срока жизни объектов запроса.
12. vkozak 25.05.21 16:42 Сейчас в теме
(11)Так потом из временных таблиц и формирует документы.
13. vkozak 26.05.21 13:16 Сейчас в теме
Как показал анализ причиной стала таблица регистра сведений, в которой было Ноль записей но которая занимала кучу места.
Регистр добавлен к типовой конфигурации. Там в ресурсах было строковое поле неограниченной длины. В него писались логи загрузки,
По результатам: Никакие ухищрения в SQLe не помогли сжать базу.
В конфигураторе ограничил длину поля, затем стандартным SQL сжатием базы вернул ее к правильному размеру.
25. vkozak 28.05.21 09:17 Сейчас в теме
(24)Ну значит, после этого надо запускать восстановление инщекса.
Спасибо, не знал.
26. aarty 28.05.21 17:30 Сейчас в теме
Добрый день попробуйте выгрузить базу из под конфигуратора в dt и загрузите в новую чистую базу. Все не нужное отпадет. Да еще и оптимизируются таблицы при загрузке.
27. nomad_irk 76 28.05.21 17:48 Сейчас в теме
(26)да, особенно когда база в скл-варианте занимает пару-тройку сотен гигабайт и необходим доступ в режиме 24/7.....
30. vkozak 28.05.21 21:35 Сейчас в теме
(26)Совет хороший, но у мен база 300 Гигов
28. aarty 28.05.21 17:59 Сейчас в теме
а Вы копию разверните из sql backup потом создайте новую базу 1с на эту базочку и в перед
32. nomad_irk 76 29.05.21 01:21 Сейчас в теме
(28)хорошо
1. Создал копию базы из скл-бэкапа
2. Выгрузил копию в *.dt
3. Не обращая внимания, сколько потребовалось времени на выполнение п.2, что с этим *.dt дальше делать? Рабочая база 24/7.....
29. aarty 28.05.21 18:00 Сейчас в теме
сам 7 лет работал в модели 24/7
31. vkozak 28.05.21 21:36 Сейчас в теме
(29)Так зачем советовать малореальное?
34. aarty 31.05.21 09:30 Сейчас в теме
Добрый день. Теперь вы создали базу без мусора. Сделайте сравните. В студию размер базы которая крутится постоянно и размер новой копии базы в студию какай разница ? Покажите в скриншотах.
36. nomad_irk 76 31.05.21 09:45 Сейчас в теме
(34)Ну будет разница, дальше что?
37. aarty 31.05.21 17:57 Сейчас в теме
Стоп а разница во сколько? если 2-3 % понятно это не показателю. А если разница в сторону > 40% то это можно считсать за прогресс. dt сливаем в рабочую базу тем самым получаем свободное место.
(36)Вы хотя бы размеры озвучили для понятия в какую сторону изменилось? Тогда аналитика заработает.
38. nomad_irk 76 31.05.21 18:11 Сейчас в теме
(37)
dt сливаем в рабочую базу тем самым получаем свободное место

Каким чудесным образом? Сколько времени на это все потребуется?
35. aarty 31.05.21 09:30 Сейчас в теме
(31)Извините коллега не успел оперативно ответить. Хорошего Вам дня.
39. aarty 02.06.21 07:40 Сейчас в теме
(38)
(38) но с большими данными всегда так. Или на начало года Вы начинаете новую базу вести переносите НСИ, взаиморасчеты с контрагентами и остатки по счетам учета. Или вы продолжаете работать в старой базе но уже с аналитикой в одном месте. Есть еще угрюмый метод сворачиваете базочку. Но я даже этот метод врагу не посоветовал. Мы при размере базы в 100 гигов каждый год начинали вести все в новой базе данных. Гемор в переносе. Но за то реальный прирост скорости до определенного момента времени. На данный момент все уперается в оптимизацию кода. Если все хорошо написано можно работать и в одной базе по 5-10 лет. Риск если база загнется тогда с умное решение с бэк апами всегда выручает. На эту тему нужно смотреть окружение и железо. А то, что я предложил это быстрая пррверка работы. Поиск медленных решения и т.д. Желаю удачи в не трудном решение вопроса.
40. nomad_irk 76 02.06.21 07:47 Сейчас в теме
(39) Вы отвечаете мне на вопросы какого-то другого человека.
Лично я не знаю, что ответить вам в случае, когда вы советуете переехать вести учет в новую базу при условии, что в проблемной базе всего одна таблица начала занимать очень много места.
41. aarty 03.06.21 08:44 Сейчас в теме
(40)Не слышите. О переезде речи нет. Это типовой механизм выгрузки в dt и обратно и обратно из базы dt в чистую базу SQL. Таким методом весь мусор избавляется. Оптимизируются таблицы. После этого принимается решение что делать дальше.
Оставьте свое сообщение

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