powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / можно ли делать SHRINKFILE во время работы пользователей
20 сообщений из 20, страница 1 из 1
можно ли делать SHRINKFILE во время работы пользователей
    #39848133
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно ли делать SHRINKFILE во время работы пользователей?
DBCC SHRINKFILE (N'base_log' , 0, TRUNCATEONLY)

(а потом сразу full бэкап)
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848143
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trewможно ли делать SHRINKFILE во время работы пользователей?Да.
Но лучше его никогда не делать, а тем более автоматически по расписанию.
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848149
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

Спасибо, понятно.
Место на диске мало. Вот и хочу привести файлы логов в маленькие размеры. (бэкап лога делается)
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848151
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

Сейчас и базы и бэкапы на одном диске))
Временно.
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848172
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trew,

как Вам поможет шринкфайл, если размер базы завтра снова увеличится? Или оптимизируйте зранение путем нормализации данных или докупайте диски.
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848173
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trew,

...

Единственное прямое назначение SHRINKFILE - это подготовка базы к резервному копированию с целью долговременного хранения или транспортировки.
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848220
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосовtrew,

...

Единственное прямое назначение SHRINKFILE - это подготовка базы к резервному копированию с целью долговременного хранения или транспортировки.
Это прям очень смелое заявление.
А как же такое?
Код: sql
1.
DBCC SHRINKFILE (file, EMPTYFILE);


Это какое-то кривое назначение?

Ну и еще есть рекомендации сжатия журнала транзакций для снижения фрагментации VLF'ов, например, здесь: https://www.sqlskills.com/blogs/kimberly/8-steps-to-better-transaction-log-throughput/
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848330
Фотография PsyMisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trew,

Конечно, если совсем приперло, и другой опции нет - то да, можно шринкать файлы в фоне обычной работы пользователей с базой. Но, надо учесть, что:
- Могут быть сильные просадки в подсистеме I/O - экстенты грузятся с диска в память, ожидания типа PAGEIOLATCH_SH
- низкоуровневые лэтчи на объекты БД
- Задача DBCC SHRINK%object% - это прибрать по максимуму все пустые области, размеченные внутри файлов логов/данных, - поэтому он не заботится о всем том, что происходит наверху, на уровне логики, и что старательно причёсывает процесс работы с индексами, посему физический порядок страниц может быть хаотичен, как следствие - замедленные операции чтения/вставки в этом хаосе - индексные последовательности могут оказаться физически разбросаны по диску, со всеми понятными вытекающими.
Желательно сразу же сделать ребилд индексом после шринка

А вообще - лучше делать шринк, взяв БД в монопольный доступ - ALTER DATABASE SET SINGLE USER
Так же учесть, что если БД состоит из нескольких файлов, и есть желание шринкануть их всех - то эта операция последовательная, а не параллельная
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848351
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Minamoto,

А миграцию в файлах в каких случаях производят? По-моему как раз в случае переезда на новый носитель. Вторая же рассмотренная ситуация - это удачное применение побочного эффекта. Устраивать же регулярный "баян", который любят рекомендовать не особо понимающие не особо понимающим на просторах инета - гораздо хуже, чем не знать о полезных качествах сжатия в _особых_ ситуациях. Просто моё мнение.
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848385
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав КолосовЕдинственное прямое назначение SHRINKFILE - это подготовка базы к резервному копированию с целью долговременного хранения или транспортировки.

неверно,

например, есть база 24/7 в несколько Тб, в результате чего-то-там (например, изменение архитектуры) реально оттуда используется, скажем, всего 1-2 Тб...
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848386
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и при резервном копировании это неиспользуемое пространство не влияет на объем бэкапа
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848419
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик,

то есть для изменения архитектуры специально единовременно расширяют хранилище? А если второй раз придется изменить архитектуру, что делать с существующими файлами на дисках, перемещать? Не слишком ли накладно, если крупные релизы происходят раз в 2-3 месяца?
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848428
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критикну и при резервном копировании это неиспользуемое пространство не влияет на объем бэкапа
Влияет.
Страница пишется в бякап целиком, независимо от заполнения.
Не пишутся только свободные страницы.
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848430
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критикну и при резервном копировании это неиспользуемое пространство не влияет на объем бэкапа
зато оно влияет на размер файлов данных/лога при восстановлении

а отсюда возникает как минимум две проблемы

1. Если нужно развернуть на каком-то другом железе, требования по свободному месту выше
2. При ресторе FULL бекапа, файл лога нужно "забить нулями", ну т.е. физически перезаписать. Следовательно, чем больше файл лога, тем дольше время восстановления.
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848433
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222Влияет.
Страница пишется в бякап целиком, независимо от заполнения.
Не пишутся только свободные страницы.
шринк не меняет заполненность страниц, в худшем (или лучшем) случае перемешает страницы и "хвоста" файла в начало.
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848489
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав КолосовКритик,

то есть для изменения архитектуры специально единовременно расширяют хранилище? А если второй раз придется изменить архитектуру, что делать с существующими файлами на дисках, перемещать? Не слишком ли накладно, если крупные релизы происходят раз в 2-3 месяца?

Зачем что-то расширять? Например, часть функционала уехала в совсем другую базу. Или перешли от подневных остатков к хранению проводок и т.д. В результате неиспользованное пространство занимает столько, насколько база не вырастет за несколько лет. И эта база периодически восстанавливается на дев/тест.
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39848803
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критикну и при резервном копировании это неиспользуемое пространство не влияет на объем бэкапа
во-первых, автор шринкает лог.
а во-вторых, может быть интересен не размер бэкапа,
а размер отресторенной базы,
и если у базы терабайтный лог, как у Гавриленко,
отресторенная база, мягко говоря, не везде влезет.
а может ее несут девелоперам на сервер с небольшим диском,
да и ждать зануление терабайта не всем хочется.
-------
файлы данных тоже, бывает, надо шринкать.
на новом месте товарищи хранили файлы как на диске, так и в таблице,
т.е. было дублирование.
приняли решение хранить файлы только на диске.
в таблицу вместо файлов занесли налл.
места высвободилось 9/10 всего объема базы.
и да, шринканули базу,
ибо таскать за собой на девелоперский сервер тучу пустого места никому не надо.
а ресторим часто.
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39849009
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосовtrew,

...

Единственное прямое назначение SHRINKFILE - это подготовка базы к резервному копированию с целью долговременного хранения или транспортировки.
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39849081
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да тупо разработчики понаменяли в таблицах всякого, так что от таблиц - только названия остались.
Тогда Alter table rebuild по всей базе + DBCC SHRINKFILE.
У меня так один раз база из 2,5 Тб в 400 Гб превратилась.
... влезла целиком на ССД и новый сервер из плана по закупкам плавно переместился в светлое будущее.
...
Рейтинг: 0 / 0
можно ли делать SHRINKFILE во время работы пользователей
    #39849411
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster... влезла целиком на ССД и новый сервер из плана по закупкам плавно переместился в светлое будущее.

вот неумные люди, нужно было сначала закупить, а потом оптимизировать :)
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / можно ли делать SHRINKFILE во время работы пользователей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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