Usar archivos y grupos de archivos

SQL Server asigna una base de datos a un conjunto de archivos del sistema operativo.Los datos y la información del registro nunca se mezclan en el mismo archivo, y cada archivo sólo es utilizado por una base de datos. Los grupos de archivos son colecciones de archivos con nombre que se utilizan para facilitar la colocación de datos y tareas administrativas como las operaciones de copias de seguridad y restauración. Para obtener más información, vea Arquitectura de archivos y grupos de archivos.

Estrategia para el relleno de archivos y grupos de archivos

Los grupos de archivos utilizan una estrategia de relleno proporcional entre todos los archivos de cada grupo de archivos. A medida que se escriben datos en el grupo de archivos, SQL Server Database Engine (Motor de base de datos de SQL Server) escribe una cantidad proporcional al espacio disponible del archivo en cada archivo del grupo, en lugar de escribir todos los datos en el primer archivo hasta que esté completo. A continuación, escribe en el siguiente archivo. Por ejemplo, si el archivo f1 tiene 100 MB de espacio disponible y el archivo f2 tiene 200 MB de espacio disponible, por cada cantidad de datos que se asigne al archivo f1, se asignará el doble al archivo f2 y así sucesivamente. De ese modo, los dos archivos se llenarán aproximadamente al mismo tiempo y se conseguirá crear una banda simple.

Cuando se llenan todos los archivos de un grupo de archivos, Motor de base de datos expande automáticamente los archivos por turnos para que quepan más datos (siempre y cuando la base de datos esté configurada para crecer automáticamente). Por ejemplo, un grupo de archivos consta de tres archivos configurados para crecer automáticamente. Cuando se agota el espacio de todos los archivos del grupo de archivos, sólo se expande el primer archivo. Cuando se llena el primer archivo y no se pueden escribir más datos en el grupo de archivos, se expande el segundo archivo. Cuando se llena el segundo archivo y no pueden escribirse más datos en el grupo de archivos, se expande el tercer archivo. Si se llena el tercer archivo y no se pueden escribir más datos en el grupo de archivos, se vuelve a expandir el primer archivo, y así sucesivamente.

Mejorar el rendimiento de la base de datos

El uso de archivos y grupos de archivos permite mejorar el rendimiento de la base de datos al permitir crear la base de datos en varios discos, varios controladores de disco o sistemas RAID (matriz redundante de discos independientes). Por ejemplo, si su equipo tiene cuatro discos, puede crear una base de datos que contenga tres archivos de datos y un archivo de registro, y mantener un archivo en cada disco. Cuando se produce un acceso a los datos, hay cuatro cabezales de lectura/escritura que pueden tener acceso en paralelo a los datos a la vez, con lo que se aceleran las operaciones de la base de datos. Para obtener más información acerca de las soluciones de hardware, vea Rendimiento de la base de datos.

Además, los archivos y los grupos de archivos permiten la colocación de los datos, ya que puede crearse una tabla en un grupo de archivos específico. De ese modo, el rendimiento aumenta dado que todas las E/S para una tabla específica pueden dirigirse a un disco específico. Por ejemplo, una tabla que se utilice muy a menudo puede colocarse en un archivo de un solo grupo de archivos y ubicarse en un disco. Otras tablas menos utilizadas de la base de datos pueden colocarse en archivos distintos de otro grupo de archivos, en un segundo disco.

Implementar estrategias de copias de seguridad y restauración

Las bases de datos formadas por varios grupos de archivos se pueden restaurar por partes mediante un proceso denominado restauración por etapas. La restauración por etapas funciona con todos los modelos de recuperación, aunque su flexibilidad es mayor para los modelos de recuperación completa o por medio de registros de operaciones masivas que para el modelo simple. El escenario de una restauración por etapas incluye las tres fases de un proceso de restauración: copiar datos, rehacer o poner al día y deshacer o revertir.. Para obtener más información, vea Realizar restauraciones por etapas.

Cuando se utilizan varios grupos de archivos, es posible hacer una copia de seguridad y una restauración individual de los archivos de una base de datos. En el modelo de recuperación simple, las copias de seguridad de archivos sólo se permiten para los archivos de sólo lectura. El uso de las copias de seguridad de archivos puede aumentar la velocidad de recuperación ya que se pueden restaurar sólo los archivos dañados sin tener que restaurar el resto de la base de datos. Por ejemplo, si una base de datos está compuesta por varios archivos ubicados físicamente en diferentes discos, y uno de ellos produce errores, sólo necesita restaurar el archivo situado en el disco que produjo errores. Para obtener más información, vea BACKUP (Transact-SQL).

Reglas para el diseño de archivos y grupos de archivos

Las siguientes reglas afectan a los archivos y grupos de archivos:

  • Un archivo o un grupo de archivos no puede ser utilizado por más de una base de datos. Por ejemplo, los archivos sales.mdf y sales.ndf, que contienen datos y objetos de la base de datos sales, no pueden ser utilizados por otra base de datos.

  • Un archivo puede pertenecer únicamente a un grupo de archivos.

  • Los archivos del registro de transacciones nunca pueden formar parte de un grupo de archivos.

Recomendaciones

Éstas son algunas recomendaciones generales referentes a los archivos y a los grupos de archivos:

  • La mayor parte de las bases de datos funcionarán correctamente con un solo archivo de datos y un solo archivo de registro de transacciones.

  • Si utiliza varios archivos, cree un segundo grupo de archivos para el archivo adicional y conviértalo en el grupo de archivos predeterminado. De ese modo, el archivo principal sólo contendrá objetos y tablas del sistema.

  • Para maximizar el rendimiento, cree archivos o grupos de archivos en tantos discos físicos disponibles como sea posible y distribuya en grupos de archivos distintos los objetos que compitan de forma intensa por el espacio.

  • Utilice grupos de archivos para permitir la colocación de los objetos en determinados discos físicos.

  • Disponga en grupos de archivos distintos las diferentes tablas que se utilicen en las mismas consultas de combinación. De ese modo, el rendimiento mejorará debido a la búsqueda de datos combinados que realizan las operaciones de E/S en paralelo en los discos.

  • Distribuya en grupos de archivos distintos las tablas de acceso frecuente y los índices no agrupados que pertenezcan a esas tablas. De ese modo, el rendimiento aumentará debido a las operaciones de E/S en paralelo que se realizan si los archivos se encuentran en discos físicos distintos.

  • No coloque el archivo o archivos de registro de transacciones en el mismo disco físico con los demás archivos y grupos de archivos.