Imagina que tienes una base de datos en SQL Server y necesitas crear un nuevo archivo de datos para esa base de datos o expandir un archivo existente. Sin la «Inicialización instantánea de archivos», SQL Server tendría que llenar todo el espacio nuevo o ampliado con ceros antes de poder utilizarlo. Esto puede llevar mucho tiempo, especialmente cuando se trata de grandes cantidades de espacio en disco.
Aquí es donde entra en juego la «Inicialización instantánea de archivos (IFI)». Básicamente, esta característica permite que SQL Server evite llenar todo el espacio nuevo o ampliado con ceros de antemano. En lugar de eso, SQL Server marca el espacio como disponible para su uso inmediato, sin tener que esperar a que se complete el proceso de llenado con ceros, lo cual nos ahorrará tiempo y hará que todo perfome a máximo nivel (espero que se haya entendido esta referencia).
Esto es especialmente útil en situaciones donde necesitas agregar rápidamente espacio a una base de datos.
Comprobar si el Instant File Initialization (IFI) está activado
Hay 2 formas de comprobar si el IFI está activado, una es revisar los logs ya que cada vez que se inicializa el log nos da la información sobre el IFI. Podeis ahorraros tiempo usando este script:
exec xp_readerrorlog 0, 1, N'Database Instant File Initialization'
O también podeis usar la siguiente query para consultar «sys.dm_server_services». Esto sólo funcionará a partir de la versión 2016 de SQL Server
SELECT ServiceName, status_desc, instant_file_initialization_enabled FROM sys.dm_server_services
Recordad que el IFI sólo se aplica para los archivos de datos y para SQL Server Engine.
Activar el Instant File Initialization en SQL Server
Para activar esta caracteristica tendremos que añadir nuestra cuenta de servicio SQL Server a una politica de seguridad llamada «Perform Volume Maintenance Tasks». Teneis que tener en cuenta que para esto necesitais tener permisos de administrador en Windows Server y además tener en cuenta que será necesario reiniciar la instancia para que los cambios se apliquen.
A continuación te muestro los pasos para añadir nuestra cuenta de servicio a esta politica:
- Ejecuta «secpol.msc» en el menu de incio o en «windows+r» para abrir la Política de seguridad local.
- Expande la carpeta «Directivas locales».
- Haz clic en «Asignación de derechos de usuario».
- Busca la opción «Realizar tareas de mantenimiento de volúmenes» y haz doble clic en ella.
- Agrega la cuenta de servicio de SQL Server y haz clic en «Aceptar».
- Reinicia los servicios de SQL Server.
Y ya está, después del reinicio vuelve a ejecutar los scripts de comprobación para ver si todo se ha hecho correctamente.
Espero que este post te haya servido. No dudes en comentar si necesitas algo.