Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
fat-fag Member Откуда: Сообщений: 6 |
Есть база на MS SQL Server 2008 R2 (SP1) размером 570 Гб. Свободного места в ней 46 Гб. Но заодно в таблицах есть куча свободного места, например:
т.е. уже только в этих таблицах из 19 Гб занятого места данные+индексы занимают 3 Гб, а остальное (16 Гб) - свободное место (unused). А всего можно освободить где-то 50 Гб. Пробовал по разному: 1) сжатие базы не помогло; 2) dbcc checkdb и dbcc checkcatalog ошибок не выявили; 3) перестройка всех индексов не помогла; 4) DBCC OPENTRAN - нет открытых транзакций; 5) пробовал сжимать (Compression) эти таблицы - данные чуть-чуть сжимаются, свободное место - не изменяется; 6) dbcc sqlperf (logspace) - в логе из 20 Гб занято 0.45 %. Подскажите, пожалуйста, как освободить свободное место из этих таблиц? |
|||||||||||||||||||||||||||||||
9 окт 18, 13:17 [21699190] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9640 |
|
||
9 окт 18, 13:33 [21699219] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8337 |
fat-fag, 1) создать-удалить кластерный индекс 2) alter table rebuild 3) переписать данные в новую таблицу, удалить старую, переименовать новую |
9 окт 18, 13:39 [21699229] Ответить | Цитировать Сообщить модератору |
fat-fag Member Откуда: Сообщений: 6 |
т.е. надо сделать вот так по пунктам, или любой из трех вариантов подойдет? |
||
9 окт 18, 15:02 [21699366] Ответить | Цитировать Сообщить модератору |
Джонни Кейдж Member Откуда: стольный град Киев Сообщений: 32 |
п. 3 - самодостаточный Если у таблицы есть кластерный индекс, то его REBUILD должен помочь. |
||||
9 окт 18, 15:54 [21699435] Ответить | Цитировать Сообщить модератору |
fat-fag Member Откуда: Сообщений: 6 |
Пробовал перестроить кластерный индекс, пробовал удалить кластерный индекс, затем снова его создать, пробовал alter table rebuild - пока не помогает. |
9 окт 18, 16:14 [21699457] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
выполните, например, для первой таблицы:select object_name(p.object_id) as tbl, p.index_id, au.total_pages, au.used_pages, au.type_desc, cast((au.total_pages - au.used_pages) * 8. / 1024 as decimal(10,3)) as unused_Mb from sys.allocation_units au join sys.partitions p on au.container_id = p.hobt_id where object_name(p.object_id) = 'N34_28' order by au.total_pages - au.used_pages desc; чтобы уж понять, куча там, кластерный ли, LOB-ы может какие... |
9 окт 18, 17:08 [21699509] Ответить | Цитировать Сообщить модератору |
fat-fag Member Откуда: Сообщений: 6 |
Yasha123, выполнил, вот результат:
|
|||||||||||||||||||
9 окт 18, 17:39 [21699546] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9640 |
fat-fag, Выполните alter index all on FN1534_28 reorganize; |
9 окт 18, 17:47 [21699553] Ответить | Цитировать Сообщить модератору |
Ennor Tiegael Member Откуда: Сообщений: 3348 |
fat-fag, Посмотрите, какой у этого индекса fill factor. Можно в sys.indexes, можно в SSMS в дереве правой кнопкой -> SCRIPT AS -> ... |
9 окт 18, 17:48 [21699556] Ответить | Цитировать Сообщить модератору |
fat-fag Member Откуда: Сообщений: 6 |
invm, выполнил, все осталось по прежнему. |
9 окт 18, 17:53 [21699562] Ответить | Цитировать Сообщить модератору |
fat-fag Member Откуда: Сообщений: 6 |
Ennor Tiegael, fill factor = 0 |
9 окт 18, 18:01 [21699571] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
fat-fag, Сделайте DBCC CLEANTABLE, проблема известная. |
9 окт 18, 18:07 [21699575] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1955 |
это не FF, это LOB data, вон же 8Гб unused там и есть |
||
9 окт 18, 18:08 [21699577] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
FIX: Cannot reclaim unused space by using shrink operation in the table that contains a LOB column in SQL Server |
||
9 окт 18, 21:21 [21699755] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |