Skip to content

Qué es Instant File Initialization en SQL Server

Término no siempre comprendido en el mundo de las Bases de Datos, tal vez porque más es manejado a nivel del Sistema Operativo. Posiblemente lo hayas visto durante la instalación de SQL Server como Volume Maintenance Task que está dentro de este concepto. Veamos para qué aplicar el Instant File Initialization en SQL Server.

Entendamos el concepto de Instant File Initialization en SQL Server

Claramente el concepto nos dice que por defecto, los archivos de DATA y de LOG en una base de datos, se inicializan para sobreescribir cualquier dato existente en un disco después de una eliminación previa.

Esto simplemente quiere decir que cuando se inician la DATA y el LOG de una base de datos, internamente estos archivos se llenan de ceros cuando se realizan algunas de estas acciones.

  • Crear/Restaurar una base de datos
  • Adicionar archivos (datafiles) a una base de datos
  • Crecer un datafile (aplica también para el autocrecimiento)

Es evidente que las operaciones descritas pueden ser realizadas muy seguido, por eso, es importante que sean tareas eficientes. Lo que hace Instant File Initialization es evitar el proceso de llenado de ceros y escribiendo directamente sobre el disco.

Un poco de historia de la configuración

Antes, configurar Instant File Initialization era una tarea manual en el Sistema Operativo que se hacía después de instalar SQL Server.

A partir de la versión 2016 de SQL Server, realizar esta configuración se volvió una tarea parte de la instalación del motor para facilitar su realización. Y lo puedes ver en el paso de «Server Configuration» como lo ves en la imagen.

instant-file-initialization-en-sql-server

Bastará con que selecciones el check button en la opción «Grant Perform Volume Maintenance Task privilege to SQL Server Database Engine Service«.

¿Cómo saber si tengo activo Instant File Initialization en SQL Server?

A partir de SQL Server en la versión 2014 SP2, el archivo Error Log contiene esta información. Puedes ver el Error Log desde SSMS o puedes hacerlo desde la ruta de instalación de tu instancia.

Si lo haces desde SSMS, busca al inicio del archivo de log la referencia como se muestra a continuación.

ifi-sql-server

En este caso podemos ver que la configuración está realizada.

¿Y qué hago si no está activo?

Puedes hacer la configuración desde las configuraciones de «Local Security Policy» del Sistema Operativo.

Encuentra la opción «Perform volume maintenance tasks» y asegúrate que la cuenta de servicio con la que se levanta SQL Server sea parte de esta política.

No pierdas de vista que si agregas esta configuración, deberás reiniciar la instancia para que tome efecto.

Por eso, lo mejor que puedes hacer es asegurarte de su aplicación durante la instalación. Si vas a Automatizar la Instalación de SQL Server con SQLCMD, no te olvides considerar la opción SQLSVCINSTANTFILEINIT=True en los parámetros del setup.

www.datoptim.com
I love working on SQL Server Performance Tuning and finding the origin of the problems. Music and SQL Server passionate.

Carrito
Volver arriba