Estou descobrindo vários bancos de dados no meu portfólio que foram criados com configurações de crescimento automático padrão (incrementos de 1 MB ou 10%) que foram expandidas por um longo período de tempo. Se eu quisesse avaliar a quantidade de fragmentação externa de cada um dos arquivos de banco de dados, posso obter dos metadados quantas vezes um arquivo de banco de dados foi modificado em tamanho (por crescimento automático ou manualmente)? Para esclarecer, posso obter dos metadados o histórico de modificações no arquivo do banco de dados durante a vida útil do banco de dados, não apenas desde o reinício da instância?
sql-server
datafile
MattyZDBA
fonte
fonte
Respostas:
Você pode obter informações sobre eventos de crescimento automático a partir do rastreamento padrão, se estiver ativado:
É possível ver a partir disso que o rastreamento padrão possui a captura de eventos Crescimento automático do arquivo de dados e Crescimento automático do arquivo de log . Para verificar se você tem o rastreamento padrão ativado nessa instância, faça o seguinte:
Nota: esta é uma opção de configuração avançada, portanto,
show advanced options
seria necessário definir 1 para visualizar essa opção de configuraçãosp_configure
. Além disso, esses dois eventos não serão acionados se o arquivo crescer manualmente .Aqui está uma rápida amostra de consulta para obter esses eventos:
E você pode obter
<Trace Path>
da função do sistemasys.fn_trace_getinfo
:fonte