Compartir a través de


Reducir un archivo

En este tema se describe cómo reducir un archivo de datos o de registro en SQL Server 2014 mediante SQL Server Management Studio o Transact-SQL.

La reducción de los archivos de datos permite recuperar espacio moviendo páginas de datos del final del archivo a espacio desocupado próximo al principio del archivo. Cuando se crea suficiente espacio disponible al final del archivo, las páginas de datos situadas al final del mismo se pueden desasignar y devolver al sistema de archivos.

En este tema

Antes de empezar

Limitaciones y restricciones

  • El archivo de datos principal no se puede hacer más pequeño que el tamaño del archivo principal en la base de datos del modelo.

Recomendaciones

  • Los datos que se mueven para reducir un archivo se pueden dispersar en cualquier ubicación disponible en el archivo. Esto produce la fragmentación de índices y puede reducir el rendimiento de las consultas que buscan un intervalo del índice. Para eliminar la fragmentación, considere la posibilidad de volver a generar los índices en el archivo después de la reducción.

Seguridad

Permisos

Requiere la pertenencia al rol fijo de servidor sysadmin o al rol fijo de base de datos db_owner.

Uso de SQL Server Management Studio

Para reducir un archivo de datos o de registro

  1. En el Explorador de objetos, conéctese a una instancia del motor de base de datos de SQL Server y expanda esa instancia.

  2. Expanda Bases de datos y, a continuación, haga clic con el botón derecho en la base de datos que desea reducir.

  3. Apunte a Tareas, apunte a Reducir, y luego haga clic en Archivos.

    Base de datos
    Muestra el nombre de la base de datos seleccionada.

    tipo de archivo
    Seleccione el tipo de archivo para el archivo. Las opciones disponibles son Archivos de datos y Archivos de registro. La selección predeterminada es Datos. Al seleccionar otro tipo de grupo de archivos, se cambian las selecciones de los demás campos en consecuencia.

    Grupo de archivos
    Seleccione un grupo de archivos en la lista de grupos de archivos asociados al tipo de archivo seleccionado anterior. Al seleccionar otro grupo de archivos, se cambian las selecciones de los demás campos en consecuencia.

    nombre de archivo
    Seleccione un archivo de la lista de archivos disponibles del grupo de archivos y el tipo de archivo seleccionados.

    Ubicación
    Muestra la ruta de acceso completa al archivo seleccionado actualmente. La ruta de acceso no se puede editar, pero se puede copiar en el Portapapeles.

    Espacio asignado actualmente
    Para los archivos de datos, muestra el espacio asignado actual. Para los archivos de registro, muestra el espacio asignado actual calculado a partir de la salida de DBCC SQLPERF(LOGSPACE).

    Espacio libre disponible
    En el caso de los archivos de datos, muestra el espacio libre disponible actual calculado a partir de la salida de DBCC SHOWFILESTATS(fileid). En el caso de los archivos de registro, muestra el espacio disponible disponible actual calculado a partir de la salida de DBCC SQLPERF(LOGSPACE).

    Liberar espacio sin usar
    Haga que cualquier espacio no utilizado en los archivos se libere en el sistema operativo y reduzca el archivo hasta la última extensión asignada, lo que reduce el tamaño del archivo sin mover ningún dato. No se intenta reubicar filas en páginas sin asignar.

    Reorganizar páginas antes de liberar espacio sin usar
    Equivalente a ejecutar DBCC SHRINKFILE especificando el tamaño del archivo de destino. Cuando se selecciona esta opción, el usuario debe especificar un tamaño de archivo de destino en el cuadro Reducir archivo a .

    Reducir el archivo a
    Especifica el tamaño del archivo de destino para la operación de reducción. El tamaño no puede ser menor que el espacio asignado actual o más de las extensiones totales asignadas al archivo. Al escribir un valor más allá del mínimo o máximo, se revertirá al mínimo o máximo una vez que se cambie el foco o cuando se haga clic en cualquiera de los botones de la barra de herramientas.

    Archivo vacío mediante la migración de los datos a otros archivos del mismo grupo de archivos
    Migre todos los datos del archivo especificado. Esta opción permite quitar el archivo mediante la instrucción ALTER DATABASE. Esta opción es equivalente a ejecutar DBCC SHRINKFILE con la opción EMPTYFILE.

  4. Seleccione el tipo de archivo y el nombre de archivo.

  5. Opcionalmente, active la casilla Liberar espacio sin usar .

    Al seleccionar esta opción, cualquier espacio no utilizado en el archivo se liberará en el sistema operativo y reduce el archivo hasta la última extensión asignada. Esto reduce el tamaño del archivo sin mover ningún dato.

  6. Opcionalmente, active la casilla Reorganizar archivos antes de liberar espacio sin usar . Si se selecciona, se debe especificar el valor de Reducir archivo a. De forma predeterminada, la opción está desactivada.

    Al seleccionar esta opción, cualquier espacio no utilizado en el archivo se liberará en el sistema operativo e intenta reubicar filas en páginas sin asignar.

  7. Opcionalmente, escriba el porcentaje máximo de espacio libre que se va a dejar en el archivo de base de datos después de que la base de datos se haya reducido. Los valores permitidos están comprendidos entre 0 y 99. Esta opción solo está disponible cuando reorganizar archivos antes de liberar espacio no utilizado está habilitado.

  8. Opcionalmente, seleccione la casilla de verificación Vaciar archivo migrando los datos a otros archivos en el mismo grupo de archivos.

    Al seleccionar esta opción, se mueven todos los datos del archivo especificado a otros archivos del grupo de archivos. A continuación, se puede eliminar el archivo vacío. Esta opción es la misma que la ejecución de DBCC SHRINKFILE con la opción EMPTYFILE.

  9. Haz clic en Aceptar.

Uso de Transact-SQL

Para reducir un archivo de datos o de registro

  1. Conéctese al motor de base de datos.

  2. En la barra Estándar, haga clic en Nueva consulta.

  3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar. En este ejemplo se usa DBCC SHRINKFILE para reducir el tamaño de un archivo de datos denominado DataFile1 en la UserDB base de datos a 7 MB.

USE UserDB;
GO
DBCC SHRINKFILE (DataFile1, 7);
GO

Véase también

DBCC SHRINKDATABASE (Transact-SQL) // Comando para reducir el tamaño de la base de datos
Reducir una base de datos
Eliminar datos o archivos de registro de una base de datos
sys.databases (Transact-SQL)
sys.database_files (Transact-SQL)