Compartir a través de


sp_clean_db_file_free_space (Transact-SQL)

Información residual que queda en las páginas de base de datos a causa de las rutinas de modificación de datos en SQL Server. sp_clean_db_file_free_space limpia todas las páginas solo en un archivo de una base de datos.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_clean_db_file_free_space 
[ @dbname ] = 'database_name' 
, @fileid = 'file_number' 
 [ , [ @cleaning_delay = ] 'delay_in_seconds' ] [;]

Argumentos

  • [ @dbname= ] 'database_name'
    Es el nombre de la base de datos que se va a limpiar. dbname es de tipo sysname y no puede ser NULL.

  • [ @fileid= ] 'file_number'
    Es el id. del archivo de datos que se va a limpiar. file_number es de tipo int y no puede ser NULL.

  • [ @cleaning\_delay= ] 'delay_in_seconds'
    Especifica un intervalo de retardo entre la limpieza de páginas. Esto ayuda a reducir el efecto en el sistema de E/S. delay_in_seconds es de tipo int y su valor predeterminado es 0.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

Elimina las operaciones de una tabla o las operaciones de actualización que hacen que una fila que se va a mover pueda liberar inmediatamente espacio en una página quitando las referencias a la fila. Sin embargo, en determinadas circunstancias, la fila puede permanecer físicamente en la página de datos como un registro fantasma. Los registros fantasma se quitan periódicamente mediante un proceso en segundo plano. El Motor de base de datos no devuelve estos datos residuales en respuesta a las consultas. Sin embargo, en entornos en los que la seguridad física de los datos o de los archivos de copia de seguridad corre riesgo, puede utilizar sp_clean_db_file_free_space para limpiar estos registros fantasma.

El período de tiempo necesario para ejecutar sp_clean_db_file_free_space depende del tamaño del archivo, del espacio disponible y de la capacidad del disco. Dado que la ejecución de sp_clean_db_file_free_space puede afectar significativamente a la actividad de E/S, se recomienda ejecutar este procedimiento fuera del horario de funcionamiento habitual.

Antes de ejecutar sp_clean_db_file_free_space, recomendamos crear una copia de seguridad total de la base de datos.

El procedimiento almacenado sp_clean_db_free_space relacionado limpia todos los archivos de la base de datos.

Permisos

Debe pertenecer al rol de base de datos db_owner.

Ejemplos

En el ejemplo siguiente se limpia toda la información residual del archivo de datos principal de la base de datos AdventureWorks2012.

USE Master
GO
EXEC sp_clean_db_file_free_space 
@dbname = N'AdventureWorks2012', @fileid = 1 ;

Vea también

Referencia

Procedimientos almacenados del motor de base de datos (Transact-SQL)