Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Перестроение индексов в режиме online  [new]
virtuOS
Member

Откуда: большая деревня
Сообщений: 265
Есть база на 150 ГБ и в ней таблица на 130 ГБ, база добавлена в группу доступности AlwaysOn. Удаляю данные из таблицы за прошлые года, что составляет примерно 50% всех данных. После завершения удаления хочу сделать перестроение всех индексов в режиме online. Также хотелось высвободить лишнее место.

Вопросы:

1. Насколько сильно вырастет лог при перестроении индексов? На диске свободно всего около 100 ГБ.
2. При шринке базы, как я понимаю, также будет расти лог?


Microsoft SQL Server 2014 Enterprise Edition  (Build 9200)


DBfile_idnametype_descSize (MB)Used Space (MB)Available Space (MB)
CRM1CRM_DataROWS167419.000000142812.3124606.68
CRM2CRM_LogLOG5126.00476.7890624649.21


namerowsreserved_kbdata_kbindex_kbunused_kb
dbo.CALL_HISTORY5715779913109528086456656425350882103536
2 ноя 16, 09:23    [19849122]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение индексов в режиме online  [new]
Владислав Колосов
Member

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

зависит от модели восстановления.
2 ноя 16, 14:02    [19850867]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение индексов в режиме online  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7869
Я думаю, что при простой места будет вполне достаточно.
2 ноя 16, 14:07    [19850894]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение индексов в режиме online  [new]
o-o
Guest
Владислав Колосов
virtuOS,

зависит от модели восстановления.

и какие же варианты для recovery model при alwayson?
2 ноя 16, 14:20    [19850982]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение индексов в режиме online  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7869
o-o,

это я просмотрел :-\
2 ноя 16, 14:27    [19851039]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение индексов в режиме online  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 888
лог при любой модели восстановления вырастет на объем примерно равный объему индексу.
2 ноя 16, 18:28    [19852327]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение индексов в режиме online  [new]
o-o
Guest
Slava_Nik
лог при любой модели восстановления вырастет на объем примерно равный объему индексу.

Если безотносительно этого поста, то неверно.
Ребилд минимально логируется в симпл и bulk logged.
Другое дело, что он хочет онлайново ребилдить,
а это построчная запись в лог.
Я думаю, каждую строку писать в лог это будет больше по объему, чем готовые страницы,
поэтому в полной модели выгоднее оффлайново ребилдить
(и в смысле объема, и по времени применения записей такого лога)
2 ноя 16, 21:05    [19852751]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение индексов в режиме online  [new]
o-o
Guest
Вот цифры:
Перестраиваю кластерную таблицу 12,563 Мб

1)full recovery model, offline
7320 rows in log, 13,464 Mb это только страницы индекса

2)full recovery model, online
2037244 rows in log, 194,362 нехилый такой объем построчной записи

3)bulk logged, offline
5801 rows in log, 432Kb это только allocated paged
3 ноя 16, 10:09    [19853741]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение индексов в режиме online  [new]
virtuOS
Member

Откуда: большая деревня
Сообщений: 265
o-o,
это при объеме базы 12 МБ лог вырос до 194 МБ? Ничё себе.

А по второму вопросу? Правильно ли я понимаю, что если при шринке базы со 100ГБ до 80ГБ лог вырастет примерно на 20ГБ (в зависимости от фрагментации)?
3 ноя 16, 11:23    [19854257]     Ответить | Цитировать Сообщить модератору
 Re: Перестроение индексов в режиме online  [new]
o-o
Guest
да, вот так и вырос.
таблица тупая, натуральные числа,
т.е. записи вообще короткие,
так что крайний случай, конечно.
просто представьте, сколько их коротких влазит на 1 страницу.
так если оффлайново ребилдить (полная модель), каждая запись лога это страница индекса,
а если онлайново, то *каждая запись индекса* валится в лог индивидуально.
со всей служебной информацией, кроме самого содержимого данных.
т.е. число записей в логе как минимум вырастет в N раз, где N это число записей,
умещающихся на странице.
---
а вот у нас тут есть любимая таблица в 400Гиг, широченная настолько,
что и без того всего 2 записи на страницу влазят.
вот на ней особо заметно не будет, построчно или постранично в лог писать
---
про шринк не знаю, никогда не делаю.
на обратном пути если снова пробка на 3 часа, то проверю
3 ноя 16, 11:33    [19854335]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить