Вырос размер таблицы в MS SQL server

1. Азверин 3 03.05.18 15:20 Сейчас в теме
Подскажите, что случилось с БД?
За неделю одна таблица выросла в несколько раз, до 8Gb.
Речь о табличной части Товары документа "Счет на оплату покупателю".
Вот текущее состояние таблицы:
name rows resivedKB dataKB index_sizeKB unusedKB
_Document635_VT19248 1044567 9790240 8356536 1430768 2936

Что было? Ничего криминального не было.
Добавлен реквизит (тип: перечисление) в сам документ.

1С:УПП (8.3.8)
MS SQL server 2012
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
29. Азверин 3 13.01.20 08:12 Сейчас в теме +1.15 $m
Победили недуг путём настроек в MS SQL, связанных с памятью.
Выгрузка-загрузка dt прошла удачно - база приняла свой реальный объём.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
25. progr-2008 118 04.06.18 23:20 Сейчас в теме
2. caponid 03.05.18 15:41 Сейчас в теме
resivedKB - это reserved KB? 9 гиг?
по этой табличке случайно кластерный индекс не сделали?
3. Азверин 3 03.05.18 15:45 Сейчас в теме
4. caponid 03.05.18 15:49 Сейчас в теме
можно попробовать вот так... на свой страх и риск и бекапы никто не отменял..
exec sp_spaceused '_Document635_VT19248', 'true'

Создать копию таблицы, дропнуть исходную и перелить записи обратно.
SEL ECT * INTO _Document635_VT19248_TEMP FR OM _Document635_VT19248
TRUNCATE TABLE_Document635_VT19248 
INS ERT  _Document635_VT19248 WITH (TABLOCK) SELE CT * FR OM  _Document635_VT19248_TEMP 
DROP TABLE_Document635_VT19248_TEMP

Но это если нет кластерного - с ним может не получиться

-- странно, sele ct форум рвет...
AlexZhukov; user705522_constantin_h; Азверин; +3 Ответить
6. Азверин 3 03.05.18 16:35 Сейчас в теме
(4) спасибо. знаю про этот приём, но сначала хочется найти причину роста.
9. caponid 03.05.18 17:20 Сейчас в теме
11. Silenser 596 04.05.18 09:45 Сейчас в теме
(9)В статье говориться о том, что сокращение размера может привести к фрагментации БД, но о необычном росте таблицы ничего не говориться. Однако за ссылку - спасибо, вроде бы и очевидно, но сам как-то ранее не задумывался.
13. Азверин 3 16.05.18 23:40 Сейчас в теме
(4) наконец-то проделали ваш скрипт с базой. размер таблицы стал нормальным. спасибо!
5. Silenser 596 03.05.18 16:00 Сейчас в теме
Если в шапку добавили реквизит, то на ТЧ это не отразится.
Судя по размеру данных, в таблице все же что-то содержится. Попробуйте сравнить число строк в документах в текущей базе и в какой-нибудь копии до начала роста. Возможно какая-то доработка или регламентное задание добавляет строки в ТЧ документа. Если в ТЧ есть реквизит типа строка или ХранилищеЗначений, то, возможно их заполнение и является причиной роста.
7. Азверин 3 03.05.18 16:36 Сейчас в теме
(5) количество строк в документах реальное. проверял. регламентных заданий нет. ТЧ Товары типовая полностью.
10. Silenser 596 03.05.18 20:12 Сейчас в теме
(7)Что то же привело к такому росту. Количество строк в табличных частях большое? Все же восстановите копию базы и попробуйте сравнить.
8. SlavaKron 03.05.18 17:12 Сейчас в теме
Может пользователи стали что-то копипастить в поле Содержание табличной части Товары?
12. Азверин 3 04.05.18 10:58 Сейчас в теме
(8) Нет такого поля и других текстовых полей.

(10) восстановили недельную копию. 12400 строк в ТЧ набабахали.

В данных ТЧ нет ничего подозрительного.
14. Азверин 3 28.05.18 16:22 Сейчас в теме
так, таблица "_Document635_VT19248" снова выросла в разы под 10Gb...

теперь то что делать?
15. caponid 31.05.18 18:39 Сейчас в теме
DBCC SHRINKDATABASE(N'YouBase')

reserved возникает тогда, когда сначала много записей в базу забили, а потом их удалили... это не значит, что они физически из таблицы исчезли, на уровне таблицы они есть с меткой "del" - -шринк с реорганизацией их удаляет физически

Искать что активно пишет в таб часть, а потом удаляет - может какие то регламентные это делают?
в крайнем случае тригер на таблицу написать на ins и del

а вообще сжатие нужно добавлять в скрипт обслуживания базы - такой есть?
у нас оно выполняется раз в неделю
16. AlexeyPapanov 459 31.05.18 19:50 Сейчас в теме
(15) А уточните, пожалуйста, такая проблема случается без зависимости от модели восстановления базы (simple...)?
17. caponid 01.06.18 09:05 Сейчас в теме
(16) без зависимости..
в принципе, если есть массовые вставки - удаления, то табличка будет всегда пухнуть.. как ни сжимай - может надо дискового места добавить?
21. Азверин 3 01.06.18 15:19 Сейчас в теме
(15) план обслуживания баз: обновление стат.-->дефраг. индексов-->реиндексация таблиц
18. caponid 01.06.18 09:22 Сейчас в теме
еще можно попробовать перестроить индексы по таблице - бывает такое, что место не освобождается из за неактуального кластерного индекса - данные то хранятся в порядке сортировки.

версия сервера какая?
19. Азверин 3 01.06.18 09:40 Сейчас в теме
(18) Microsoft SQL Server 2012
позже дам инфу по регламентам на MS SQL
20. caponid 01.06.18 09:55 Сейчас в теме
и скрипт создания этой таблицы выложи
22. Азверин 3 01.06.18 15:22 Сейчас в теме
(20)
exec sp_spaceused '_Document635_VT19248', 'true'

SEL ECT * INTO _Document635_VT19248_TEMP FROM _Document635_VT19248

TRUNCATE TABLE _Document635_VT19248
INS ERT _Document635_VT19248 WITH (TABLOCK) SELE CT * FR OM _Document635_VT19248_TEMP
DROP TABLE_Document635_VT19248_TEMP
23. caponid 01.06.18 15:52 Сейчас в теме
(22) хм... в sql студии на таблице правой кнопкой мышки
Прикрепленные файлы:
24. pavelyar 02.06.18 17:37 Сейчас в теме
26. a.doroshkevich 1412 05.06.18 09:19 Сейчас в теме
Фёдор, а Вы какую задачу решить то хотите?
У Вас проблемы с местом на сервере БД или просто академический вопрос - почему выросла именно эта таблица?
27. starik-2005 3036 05.06.18 09:55 Сейчас в теме
Включите ТЖ, настройте на отлов событий вставки/удаления в эту таблицу и анализируйте получившийся журнал. Скорее всего обмен каакой-нибудь создает кучу строк в ТЧ, потом их грохает, или просто происходит постоянная перезапись документов, а 1С обновлять не умеет - она сначала все удаляет, а потом заново пишет (в транзакции). В итоге что угодно от постоянной перезаписи раздуется...
28. пользователь 12.05.19 00:45
Сообщение было скрыто модератором.
...
29. Азверин 3 13.01.20 08:12 Сейчас в теме +1.15 $m
Победили недуг путём настроек в MS SQL, связанных с памятью.
Выгрузка-загрузка dt прошла удачно - база приняла свой реальный объём.
Оставьте свое сообщение

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