|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Добрый день. Версия 2016 SP2 CU10 Enterprise. Есть база размером 1.2 ТБ. В ней есть свободное место, шринк базы показывает минимум 620 ГБ. Появилась задача уменьшить размер до 650 ГБ. Перед работами в выходные был выполнен бекап, база переведена в режим simple и запущено сжатие. Через 18 часов запрос всё ещё продолжался, лог базы вырос до 460 ГБ, а в дата-файле показывало, что занято 900 ГБ. По самым крупным таблицам рост во время сжатия был около 30%. Была таблица 626к строк и размером 540 ГБ, во время сжатия стала 836 ГБ при всё тех же 626к строк, и так по всем таблицам. На самой большой таблице всего 1 некластерный индекс, как был размером 1МБ так и оставался. Свободного места на диске было 570 ГБ, оставалось около 110 ГБ. За несколько часов наблюдений ничего не менялось, сжатие было остановлено, лог очищен, база переведена в режим фулл, создан новый фулл-бекап. Сегодня проверяю базу - размер таблиц и свободное место в базе вернулось к исходному. Давно не доводилось сжимать большие базы, но что-то подобного поведения не помню. Если лог в режиме симпл расти может при долгих транзакциях (хотя при сжатии в симле вроде так не должен), то вот рост размера таблиц - удивил, сначала было подозрение что может вечером в таблицы что-то дописали, но есть скриншоты топ-таблиц и количество строк, в отличии от размера, похожее. При этом выглядит, что запрос висел и дальше не выполнялся даже не из-за того, что места на диске стало мало (но ещё было), а из-за того что заданный размер при шринке стал меньше текущего. Если кто-то сталкивался или просто знает - что это было и как решить? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 10:10 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Danion, Тут обсуждали недавно похожую ситуацию со свободным местом. https://www.sql.ru/forum/1322756/unused-space-klasternyh-tablic А вообще на SQL 2016 Ent надо использовать columnstore ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 10:15 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Команду-то в итоге какую запускали? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 11:49 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, Сжатие файла из SSMS с реорганизацией страниц. Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 12:09 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
a_voronin, Тему прочитал, но вроде не очень похоже. У меня на таблице нет кластерного индекса, массовой вставки данных во время работ тоже не было. В базе уже давно было свободное место в дата-файле, когда-то удаляли ненужные уже таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 12:39 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Danion Гавриленко Сергей Алексеевич, Сжатие файла из SSMS с реорганизацией страниц. Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 12:51 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Danion, Перепроверил индекс на самой большой таблице - я утром всё же не туда посмотрел и индекс там кластерный уникальный, хотя и не РК. Fill factor - 0. alexeyvg, Не очень понял, можно пример? По 50 МБ это как, если файл сейчас 100000 МБ указывать сжимать до 99950? (ну или текущее - 50 МБ). Так вроде всё равно будет долго выполняться такое. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 13:12 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Danion, автор836 ГБ при всё тех же 626к строк BLOB, что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 14:06 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Владислав Колосов, База из серии 1С, к документообороту относится. Самая большая таблица: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Единственный индекс: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
[_Fld9746] [varbinary](max) - ага, похоже на BLOB. У таблицы топ 2 по размеру и росту во время шринка тоже [_SettingsData] [varbinary](max) NULL У следующей по размеру одно из полей [_Fld1030] [varbinary](max) NOT NULL Пойду пока освежу воспоминания по блобам. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 14:21 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
alexeyvg, Нашел пример сжатия частями на https://infostart.ru/public/1031815/ 5 пост и в https://www.sqlshack.com/shrinking-your-database-using-dbcc-shrinkfile/ На тестовой базе отработало нормально, проверю как будет себя вести база при таком способе. Что-то подобное используете? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 15:13 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Danion Есть база размером 1.2 ТБ. Через 18 часов запрос всё ещё продолжался Смешно. Если там не "японский сверхкомпутер"... то 18 суток было бы уместнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 15:29 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
aleks222, В смысле? 1 целое, 2 десятых ТБ - оно же 1229 ГБ. Какие 18 суток? Если нормально всё происходит, то меньше суток на среднем сервере подобные размеры обрабатывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 15:43 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Danion aleks222, В смысле? 1 целое, 2 десятых ТБ - оно же 1229 ГБ. Какие 18 суток? Если нормально всё происходит, то меньше суток на среднем сервере подобные размеры обрабатывает. У нас очень разные "средние" сервера. Но я рад за вас. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 16:08 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
aleks222, Если реально так долго выполняется у вас - то сочувствую. Я пока встречал только ситуации, что к моменту базы 1ТБ все же разорялись хоть на сколько-то приличное железо. Пока немного позапускал сжатие частями из поста выше и получается неплохо. Таблицы не растут, можно останавливать в любой момент и прошлые куски уже выполнены. За два подхода 100+ ГБ освободилось. До этого как-то запускал шринк именно с небольшим уменьшением размера файла и времени занимало уйму, но это видимо зависит ещё от разброса пустого места по файлу. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 16:20 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Danion alexeyvg, Нашел пример сжатия частями на https://infostart.ru/public/1031815/ 5 пост и в https://www.sqlshack.com/shrinking-your-database-using-dbcc-shrinkfile/ На тестовой базе отработало нормально, проверю как будет себя вести база при таком способе. Что-то подобное используете? Посмотрел, на самом деле я шринкал порциями не по 50, а по 500-1000 мб, это оказалось оптимально. Я размер порции сделал параметром, и потом подбирал оптимальный размер. Danion Пока немного позапускал сжатие частями из поста выше и получается неплохо. Можно просто запустить, и потом проверить результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 17:28 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
alexeyvg, За идею спасибо! С сжатием базы реально намного проще пошло. Понаблюдаю ещё за базой несколько дней. Хотя именно с причинами почему обычное сжатие пошло так странно осталось не ясно. У блоба с налёту не нашел описаний похожего поведения, кластерные индексы могут расти обратно при планах обслуживания индекса, но не самого шринка. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 17:44 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Подозреваю, что размер таблицы растет из-за фрагментации BLOB. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 17:44 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Danion, при ваших объемах я бы советовал вам перегнать таблицы в новые ФГ, с последующим удалением старых. да это "больше" в плане трудозатрат, но экономичнее в плане ресурсов времени и IO. на тему вредности shrink уже столько всего написано. лучше всего наверное с аггрегацией у Брента: https://www.brentozar.com/archive/2009/08/stop-shrinking-your-database-files-seriously-now/ куча ссылок и рекомендаций: не используете shrink ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2020, 19:46 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
felix_ff, Если пол базы пустая, почему бы и не использовать шринк. Другое дело, что делать это с лагом всего в 5% (30Гб), очень затратная затея. И про 18 дней не такая уж фантастика :). Хотя бы стольник оставили и все шринканулось бы за несколько часов. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 05:13 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Idol_111, Потому что еще после шринка базу нужно будет приводить в порядок. А все это время которое потребуется на обслуживание конечные пользователи будут страдать и выносить дба мозги. Ну если организация допускает такие моменты то пожалуйста ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 13:22 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
felix_ff Idol_111, Потому что еще после шринка базу нужно будет приводить в порядок. А вот это момент если можно по-подробней. Что хотите там улучшить? Не забываем, что на дворе 2020 год, а не системы прошлого века. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 00:58 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Idol_111 felix_ff Idol_111, Потому что еще после шринка базу нужно будет приводить в порядок. А вот это момент если можно по-подробней. Что хотите там улучшить? Не забываем, что на дворе 2020 год, а не системы прошлого века. А вы не забывайте что шринк это не просто освобождение неиспользуемого места для ОС (не говорим сейчас про TRUNCATE ONLY). Он перемещает страницы данных. После него такая каша будет в плане внешней фрагментации - закачаешься. После него нужно еще все индексы на затронутых таблицах перестраивать и вот тут вот как раз и есть обратная сторона медали - процесс затратный и дорогой, а пока вы их будете ребилдить получите еще тонну писем от возмущенных пользователей почему сегодня система работает очень медленно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 02:23 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
felix_ff, внешняя фрагментация имела существенное значение лет 10 назад, а сейчас при современных шибко "умных" хранилищах, вы и понятия не будете иметь где ваши данные находятся и как расположены. Я тоже балуюсь этой ерундой (ребилдингом) по привычке. Толку от него около ноля. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 06:40 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Idol_111, именно, даже если это не NAS, а HDD, то логические головки и диски не отображают физическое расположение. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 13:53 |
|
Рост веса таблицы при сжатии
|
|||
---|---|---|---|
#18+
Владислав Колосов Idol_111, именно, даже если это не NAS, а HDD, то логические головки и диски не отображают физическое расположение. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2020, 14:14 |
|
|
start [/forum/topic.php?fid=46&msg=39934981&tid=1686370]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 168ms |
0 / 0 |