Я следил за ростом файлов через сборщик данных в SQL Server 2008 R2 в течение двух недель. База данных постоянно растет на уровне около 35 (МБ) / день. БД еще не достигла первоначального размера в 2 ГБ.
Автоматический рост файлов БД установлен на 5 МБ, и я хотел бы попробовать другой подход, поэтому я ищу предложения и комментарии.
Существует задание по настройке, которое выполняется каждую неделю в воскресенье вечером в 1:30. Задача будет:
- Проверьте целостность базы данных
- Сжатие файла журнала - (Это нормально, потому что режим регистрации прост)
- Сжатие базы данных
- Реорганизовать индекс
- Перестроить индекс
- Обновить статистику
- Очистить историю
Я хотел бы добавить еще два шага к плану еженедельной настройки:
- Увеличьте файл базы данных на 500 МБ, если используемое пространство достигает определенного порога или общего размера.
- Увеличьте файл журнала на 250 МБ (после сжатия), если используемое пространство достигает определенного порога общего размера.
Размещая бремя роста в нерабочее время, я надеюсь повысить производительность, сократив количество событий автоматического роста при больших нагрузках.
У меня есть два вопроса, касающихся автоматического увеличения файлов.
- Лучшее место, чтобы поместить шаги роста файла, было бы до текущих шагов или после?
- Если я использую
ALTER DATABASE|MODIFY FILE
для увеличения файла, то как я могу определить, еслиSpaceUsedInFile >= (TotalFileSpace-@AllowanceThreshold)
?
Ответы:
Вы должны стремиться к саморазвитию как можно меньше. Семь раз в день мучительно, даже с мгновенной инициализацией файла.
Не делайте Shrink Database. Когда-либо. Может быть, Shrinkfile, но только после необычного события. Сокращение его только для того, чтобы снова расти, является бесполезным упражнением и должно фактически называться автофрагментом.
Если модель восстановления проста, на земле нет никакого способа, вам нужно увеличить файл журнала на 250 ГБ. Используемое пространство в файле автоматически очищается с течением времени, если только вы не начали транзакцию месяц назад и не намерены когда-либо ее фиксировать или откатывать.
Так что мой совет будет:
Автоматически увеличивайте файл данных вручную в течение тихого периода до размера, который будет соответствовать нескольким месяцам роста. Для чего вы его сохраняете?
Установите для файла данных приращение автоматического увеличения относительно небольшого размера (чтобы оно не прерывало пользователей, когда это произойдет) и предупреждайте об этом событии (например, его можно отследить в трассировке по умолчанию или в расширенном режиме). События). Это может сказать вам, что вы достигли вершины, которую вы оценили, и пришло время снова расти вручную. На этом этапе вы захотите сохранить это руководство на тот случай, если вы захотите добавить новый файл / файловую группу на другой диск, чтобы вместить пространство, поскольку в итоге вы будете заполнять текущий диск.
Автоматически увеличивайте размер файла журнала, скажем, вдвое больше, чем когда-либо. Он не должен автоматически расти дальше, пока не произойдет какая-то ненормальная транзакция, удерживающая вещи. Вы должны следить за этим событием, чтобы вы знали о них.
источник
Авто рост это то, что вы должны стараться избегать, если это возможно. Проблема в том, что у вас нет контроля над тем, когда может произойти рост, и ваша система может серьезно пострадать, когда это произойдет.
Установите размер файла на что-то разумное в течение месяца или около того и следите за скоростью его роста, определите, сколько места вы оцениваете в течение X промежутка времени, и установите для этого размер + погрешность.
Я настроил простую работу по мониторингу, которая будет предупреждать меня, когда размер файла достигает предопределенного максимума перед автоматическим ростом. Вы можете использовать что-то вроде этого:
Это, конечно, может быть запланировано как работа.
источник