powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Увеличение размера файла базы после ALTER INDEX REBUILD ONLINE = ON
12 сообщений из 12, страница 1 из 1
Увеличение размера файла базы после ALTER INDEX REBUILD ONLINE = ON
    #40016804
KellyLynch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может ли кто-то пояснить вот по такой ситуации: есть база данных на SQL Server 2012. Один из её файлов данных имел размер 1.33 TB. На базе последовательно выполнили две такие операции:

Операция 1: DBCC SHRINKFILE ('TheFileName’) . В результате чего размер файла уменьшился с 1.33 TB до 1.13TB.
Операция 2: Запустили несколько команд ALTER INDEX REBUILD ONLINE = ON для кластерных индексов нескольких больших таблиц, находящихся в этом файле базы.
В результате чего размер файла опять увеличился уменьшился до примерно такого же размера, какой и был до DBCC SHRINKFILE ('TheFileName’).

Это что – “ожидаемое последствие INDEX REBUILD”? Я не знал, что INDEX REBUILD может вызвать увеличение размера файла данных базы.
...
Рейтинг: 0 / 0
Увеличение размера файла базы после ALTER INDEX REBUILD ONLINE = ON
    #40016809
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KellyLynch,

ну так в режиме онлайн была построена копия таблицы
файл вырос
теперь в нем снова много места от старых таблиц

shrinkfile и rebuild это операции с противоположным эффектом в части размера файлов

shrinkfile безобидна только случае использования опции truncateonly
...
Рейтинг: 0 / 0
Увеличение размера файла базы после ALTER INDEX REBUILD ONLINE = ON
    #40016922
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KellyLynch
Операция 1: DBCC SHRINKFILE ('TheFileName’) . В результате чего размер файла уменьшился с 1.33 TB до 1.13TB.
И зачем портить базу ради 20% размера файла? Я понимаю, с 1.33 TB до 1.13ГB...
...
Рейтинг: 0 / 0
Увеличение размера файла базы после ALTER INDEX REBUILD ONLINE = ON
    #40016936
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще тут на форуме писали, что при онлайновом перестроении сам индекс еще растет (+несколько байт на каждую запись)
...
Рейтинг: 0 / 0
Увеличение размера файла базы после ALTER INDEX REBUILD ONLINE = ON
    #40016958
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик,

Если RCSI на базе включен, то 14 байт на строку - было дело . Забавно, что в доке к 2005 это багом еще не считалось, было вполне себе документированное поведение.
...
Рейтинг: 0 / 0
Увеличение размера файла базы после ALTER INDEX REBUILD ONLINE = ON
    #40017159
KellyLynch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg
KellyLynch
Операция 1: DBCC SHRINKFILE ('TheFileName’) . В результате чего размер файла уменьшился с 1.33 TB до 1.13TB.
И зачем портить базу ради 20% размера файла? Я понимаю, с 1.33 TB до 1.13ГB...


"И зачем портить..." - сам не знаю ; мне сейчас приходится разгребать то что наделали другие.

Тогда такой вопрос: я вижу в базе ещё один файл; в нём индексы хранятся. Этот файл недавно сжали в 2 раза: с 1 TB до 500 GB.
Microsoft предупреждает что …A shrink operation doesn't preserve the fragmentation state of indexes in the database, and generally increases fragmentation to a degree ….”.

Значит, в результате этого Shrink-а фрагментация "увеличилась".
Как по-Вашему, каковы должны быть дальнейшие действия с этим файлом? Я уже вижу что ALTER INDEX REBUILD запускать опасно - этот запуск может опять увеличить файл до прежнего размера. Но ведь с "возросшей фрагментацией" надо что-то делать...
...
Рейтинг: 0 / 0
Увеличение размера файла базы после ALTER INDEX REBUILD ONLINE = ON
    #40017160
KellyLynch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad
KellyLynch,

ну так в режиме онлайн была построена копия таблицы
файл вырос
теперь в нем снова много места от старых таблиц

shrinkfile и rebuild это операции с противоположным эффектом в части размера файлов

shrinkfile безобидна только случае использования опции truncateonly


Тогда такой вопрос: я вижу в базе ещё один файл; в нём индексы хранятся. Этот файл недавно сжали в 2 раза: с 1 TB до 500 GB.
Microsoft предупреждает что …A shrink operation doesn't preserve the fragmentation state of indexes in the database, and generally increases fragmentation to a degree ….”.

Значит, в результате этого Shrink-а фрагментация "увеличилась".
Как по-Вашему, каковы должны быть дальнейшие действия с этим файлом? Я уже вижу что ALTER INDEX REBUILD запускать опасно - этот запуск может опять увеличить файл до прежнего размера. Но ведь с "возросшей фрагментацией" надо что-то делать...
...
Рейтинг: 0 / 0
Увеличение размера файла базы после ALTER INDEX REBUILD ONLINE = ON
    #40017165
Фотография DeColo®es
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KellyLynch,
В том, что в файле есть свободное место, нет ничего"опасного".
Напротив, если файл данных забит до предела - вот это плохо:
  • в случае роста объема данных, серверу придется расширять файл, что приведет к задержкам в этот момент
  • операция роста может столкнуться с отсутствием места на диске.
...
Рейтинг: 0 / 0
Увеличение размера файла базы после ALTER INDEX REBUILD ONLINE = ON
    #40017168
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KellyLynch,

Вы чего взялись то файлы уменьшать / индексы ребилдить.

У вас в данный момент наблюдается какая то реальная проблема которую надо решить?
Или все эти манипуляции от доброты душевной?
...
Рейтинг: 0 / 0
Увеличение размера файла базы после ALTER INDEX REBUILD ONLINE = ON
    #40017173
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KellyLynch
komrad
KellyLynch,

ну так в режиме онлайн была построена копия таблицы
файл вырос
теперь в нем снова много места от старых таблиц

shrinkfile и rebuild это операции с противоположным эффектом в части размера файлов

shrinkfile безобидна только случае использования опции truncateonly


Тогда такой вопрос: я вижу в базе ещё один файл; в нём индексы хранятся. Этот файл недавно сжали в 2 раза: с 1 TB до 500 GB.
Microsoft предупреждает что …A shrink operation doesn't preserve the fragmentation state of indexes in the database, and generally increases fragmentation to a degree ….”.

Значит, в результате этого Shrink-а фрагментация "увеличилась".
Как по-Вашему, каковы должны быть дальнейшие действия с этим файлом? Я уже вижу что ALTER INDEX REBUILD запускать опасно - этот запуск может опять увеличить файл до прежнего размера. Но ведь с "возросшей фрагментацией" надо что-то делать...


Имитация бурной деятельности.
...
Рейтинг: 0 / 0
Увеличение размера файла базы после ALTER INDEX REBUILD ONLINE = ON
    #40017185
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KellyLynch
"И зачем портить..." - сам не знаю ; мне сейчас приходится разгребать то что наделали другие.
А, в смысле, это другие делают шринки и ребилды?

Если свободное место не во много раз больше занятого, то запретите им делать шринки.

KellyLynch
Значит, в результате этого Shrink-а фрагментация "увеличилась".
Как по-Вашему, каковы должны быть дальнейшие действия с этим файлом?
Вам нужно выбрать, либо незанятое место в файле, либо фрагментацию.
...
Рейтинг: 0 / 0
Увеличение размера файла базы после ALTER INDEX REBUILD ONLINE = ON
    #40017253
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
Если свободное место не во много раз больше занятого, то запретите им делать шринки


+1
а вот если у вас база весит 1-2 Тб, а внутри занято 20Гб, то нужно шринкать
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Увеличение размера файла базы после ALTER INDEX REBUILD ONLINE = ON
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]