Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Много пустого места в базе  [new]
gepard1980
Member

Откуда: Ярославль
Сообщений: 240
В SSMS выбрал пункт shrink database. Появился диалог в котором показывается свободное место. Аж 78%. Нажимаю OK. Долго думает, но база не уменьшается. Пробовал выбирать пункт shrink file, указывал файл данных. Тоже результат нулевой. Журнал транзакций без проблем шринкается. Пробовал скриптом. Тоже результата нет. Как было 78% available free space так и осталось. Что делать?

К сообщению приложен файл. Размер - 4Kb
12 дек 18, 11:59    [21761259]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2394
gepard1980,

галочку на рискунке нажимали? (с прочтением предупреждения)
12 дек 18, 12:16    [21761298]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
gepard1980
Member

Откуда: Ярославль
Сообщений: 240
StarikNavy, нет. Вечером нагрузка спадет - попробую.
12 дек 18, 14:04    [21761536]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
uaggster
Member

Откуда:
Сообщений: 811
А вы уверены, что вам нужен шринк БД?
Например, если БД во время работы создает какие-то большие объекты внутри БД, а потом - удаляет их, то шринк не поможет.
Файл базы о5 раздуется, да еще будет тормозить при раздувании.
12 дек 18, 14:12    [21761545]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
gepard1980
Member

Откуда: Ярославль
Сообщений: 240
uaggster, больших объектов там точно нет. просто типовая база юзеров.
12 дек 18, 14:15    [21761550]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
uaggster
Member

Откуда:
Сообщений: 811
gepard1980, а откуда тогда столько места?
Посмотрите, может у вас FillFactor слишком маленький на кластерных индексах, и индексах вообще?
12 дек 18, 14:24    [21761578]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
gepard1980
Member

Откуда: Ярославль
Сообщений: 240
uaggster, FillFactor всегда по-умолчанию который идет
12 дек 18, 15:25    [21761705]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
кодом посмотрите свободное место,
sp_spaceused
12 дек 18, 15:30    [21761714]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
msLex
Member

Откуда:
Сообщений: 7998
uaggster
gepard1980, а откуда тогда столько места?
Посмотрите, может у вас FillFactor слишком маленький на кластерных индексах, и индексах вообще?


Свободное место на страниц (а не FillFactor) не отображается в качестве свободного места в БД.

PS
Сам FillFactor вообще актуален только при создании и ребилде индекса.
12 дек 18, 15:37    [21761730]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
gepard1980
Member

Откуда: Ярославль
Сообщений: 240
Yasha123, вот:

К сообщению приложен файл. Размер - 8Kb
12 дек 18, 15:39    [21761736]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1716
gepard1980,

маленький нюанс - после шринка придётся реорганизовывать индексы, а этот процесс приведёт к увеличению файла БД. Да ещё и статистику придётся обновлять.

Кстати, кто может мне объяснить, какая взаимосвязь между реорганизацией индексов и необходимостью обновления статистики (гистограммы распределения, чтоб её)?
12 дек 18, 15:43    [21761742]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
uaggster
Member

Откуда:
Сообщений: 811
DaniilSeryi
gepard1980,

маленький нюанс - после шринка придётся реорганизовывать индексы, а этот процесс приведёт к увеличению файла БД. Да ещё и статистику придётся обновлять.

Кстати, кто может мне объяснить, какая взаимосвязь между реорганизацией индексов и необходимостью обновления статистики (гистограммы распределения, чтоб её)?

Эээ... к реорганизации индексов бонусом идет пересчет статистики по этому индексу. Поэтому пересчитывать статистику после реорганизации/перестроения - не нужно.
Собственно, на быстродействие запросов коренным образом влияет именно актуальная статистика, которая автоматом актуализируется при ребилде, поэтому ребилд "помогает".
На самом же деле фрагментирование индексов на быстродействие, конечно, влияет, но не радикальным образом, и, скажем так, в третьих-четвертых по значимости, и их дефрагментация не является остронеобходимой задачей.

Как то так.
12 дек 18, 16:43    [21761827]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
uaggster
Эээ... к реорганизации индексов бонусом идет пересчет статистики по этому индексу. Поэтому пересчитывать статистику после реорганизации/перестроения - не нужно.
...
Как то так.

как-то совсем не так.
при реорге никакая статистика не обновляется,
при ребилде да, по ключевым полям будет обновлена с аналогом fullscan.
обычная же колоночная статистика по неключевым полям не пересобирается ни при реорге, ни при ребилде,
ее надо пересчитывать самим и после ребилда тоже,
не говоря уж о реорге
12 дек 18, 16:58    [21761841]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
DaniilSeryi
после шринка придётся реорганизовывать индексы, а этот процесс приведёт к увеличению файла БД

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

ну и потом, кто сказал, что у ТС вообще есть индексы.
может, там сплошные неиндексированные кучи
12 дек 18, 17:06    [21761859]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
gepard1980
Member

Откуда: Ярославль
Сообщений: 240
Yasha123, индексы естественно есть во всех таблицах и кластерные и некластерные.
12 дек 18, 17:09    [21761866]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
gepard1980,
еще раз можете проверить размеры файлов кодом?
select file_id, type_desc, cast(size * 8 / 1024/ 1024. as decimal(10,2)) as Gb
from sys.database_files;
12 дек 18, 17:12    [21761872]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
gepard1980
индексы естественно есть во всех таблицах и кластерные и некластерные.

хорошо, что есть.
тогда после шринка вам действительно стоит отребилдить индексы.
только не надо реорг делать.
на таких смешных объемах ребилд в самый раз
12 дек 18, 17:14    [21761881]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
gepard1980
Member

Откуда: Ярославль
Сообщений: 240
Yasha123, вот:

К сообщению приложен файл. Размер - 5Kb
12 дек 18, 17:23    [21761894]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
а шринк кодом и не через гуи что пишет?
dbcc shrinkfile (1);
12 дек 18, 17:27    [21761901]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7663
Там может идти хронический drop create, например. Если уж автор пишет, что не кучи.
12 дек 18, 18:23    [21761981]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Владислав Колосов
Там может идти хронический drop create, например. Если уж автор пишет, что не кучи.

как можно, используя drop create, не давать высвободить 58Гб?
12 дек 18, 18:32    [21761991]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7663
Yasha123,

создали тысячу таблиц, 999 дропнули, последняя не дает усечь файл.
12 дек 18, 18:39    [21761999]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Владислав Колосов,
почему не дает-то?
12 дек 18, 18:47    [21762005]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7663
Yasha123,

потому что в конце файла находится. Чтобы отсечь хвост таблицу надо переместить. Выполнить реогранизацию.
12 дек 18, 18:56    [21762011]     Ответить | Цитировать Сообщить модератору
 Re: Много пустого места в базе  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Владислав Колосов
Yasha123,

потому что в конце файла находится. Чтобы отсечь хвост таблицу надо переместить. Выполнить реогранизацию.

так шринк же этим и занимается. перемещает из конца файла в начало. какая ему разница, там ваша 1000ая таблица или страницы самой первой таблицы, которые рассплитились и попали в конец файла?
12 дек 18, 19:14    [21762021]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить