Я обнаружил несколько БД в моем портфеле, которые были созданы с настройками автоматического увеличения по умолчанию (с шагом 1 МБ или 10%), которые расширялись в течение длительного периода времени. Если бы я хотел получить оценку количества внешней фрагментации для каждого из файлов БД, могу ли я получить из метаданных, сколько раз размер файла БД был изменен (автоматически или вручную)? Чтобы уточнить, могу ли я получить из метаданных историю изменений файла БД за время существования БД, а не только после перезапуска экземпляра?
sql-server
datafile
MattyZDBA
источник
источник
Ответы:
Вы можете получить информацию о событиях автоматического роста из трассировки по умолчанию, если она включена:
Вы можете видеть из этого , что след по умолчанию это есть файл данных Auto Grow и Log File Auto Grow события захвата. Чтобы проверить, включена ли трассировка по умолчанию для этого экземпляра, вы можете сделать следующее:
Примечание. Это расширенный параметр конфигурации, поэтому
show advanced options
для просмотра этого параметра необходимо установить значение 1sp_configure
. Кроме того, эти два события не будут вызваны, если файл вырос вручную .Вот быстрый пример запроса для получения этих событий:
И вы можете получить
<Trace Path>
из системной функцииsys.fn_trace_getinfo
:источник