Мы можем справиться с падением производительности.
Это также один раз, поскольку был создан новый индекс, который вызвал создание большого файла журнала. Мне нужно снова сжать этот файл.
Я просто хотел знать, есть ли какие-либо риски при выполнении этой команды.
База данных SQL Server 2005
Предполагая, что вы говорите о SQL Server 2000/2005, я без проблем делаю это с живыми базами данных.
Это безопасно, но делайте это в тихое время, когда транзакционная активность низкая. Рекомендуется сжать журнал до минимального размера, а затем увеличить его до нормального размера (это обеспечит создание правильного количества VLF (внутренних виртуальных файлов журнала), что повысит производительность регистрируемых команд).
Если журнал базы данных не сжимается - если база данных находится в простом режиме, сначала выполните команду контрольной точки, если она полностью записана, сначала сделайте резервную копию журнала.
Если журнал содержит необработанные зеркальные транзакции или транзакции репликации, он может не уменьшиться до минимального размера.
Не забудьте установить соответствующее значение автоматического роста.
См. Следующие статьи:
http://www.sqlskills.com/BLOGS/KIMBERLY/post/8-Steps-to-better-Transaction-Log-throughput.aspx
Я также сжимаю журнал транзакций на активных базах данных. Это влияет только на неактивную часть журнала транзакций.
У Пола Рэндалла здесь довольно глубокая нить. В его блоге также есть статья:
Безопасно ли включать автоматическое сжатие SQL Server?
Это не ваш точный вопрос, но он проливает дополнительный свет на то, что / как работает DBCC SHRINKFILE.
Также несколько указателей, если ваш журнал не сжимается: