Estoy descubriendo una serie de bases de datos en mi cartera que se han creado con la configuración predeterminada de crecimiento automático (ya sea 1 MB o incrementos del 10%) que se han expandido durante un período prolongado de tiempo. Si quisiera obtener un indicador de la cantidad de fragmentación externa para cada uno de los archivos de base de datos, ¿puedo obtener de los metadatos cuántas veces se ha modificado el tamaño de un archivo de base de datos (ya sea por crecimiento automático o manual)? Para aclarar, ¿puedo obtener de los metadatos el historial de modificaciones del archivo DB durante la vida útil del DB, no solo desde el reinicio de la instancia?
sql-server
datafile
MattyZDBA
fuente
fuente
Respuestas:
Puede obtener información de eventos de crecimiento automático de la traza predeterminada si está habilitada:
Puede ver a partir de esto que el rastreo predeterminado tiene la captura de eventos de crecimiento automático del archivo de datos y crecimiento automático del archivo de registro . Para ver si tiene habilitado el rastreo predeterminado en esa instancia, puede hacer lo siguiente:
Nota: esta es una opción de configuración avanzada, por
show advanced options
lo que tendría que configurarla en 1 para ver esta opción de configuraciónsp_configure
. Además, estos dos eventos no se activarán si el archivo creció manualmente .Aquí hay una consulta de muestra rápida para obtener estos eventos:
Y puede obtener
<Trace Path>
de la función del sistemasys.fn_trace_getinfo
:fuente