Compartir por


sp_clean_db_free_space (Transact-SQL)

Se aplica a:SQL ServerAzure SQL Managed Instance

Elimina la información residual en las páginas de datos. sp_clean_db_free_space limpia todas las páginas de todos los archivos de datos de la base de datos.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_clean_db_free_space
    [ @dbname = ] N'dbname'
    [ , [ @cleaning_delay = ] cleaning_delay ]
[ ; ]

Argumentos

[ @dbname = ] N'dbname'

Nombre de la base de datos que se va a limpiar. @dbname es sysname, sin ningún valor predeterminado.

[ @cleaning_delay = ] cleaning_delay

Especifica un intervalo para retrasar antes de la limpieza de cada página, en segundos. @cleaning_delay es int, con un valor predeterminado de 0. Este retraso ayuda a reducir la carga sobre el sistema de E/S a costa de alargar la duración del proceso de limpieza.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Comentarios

El sp_clean_db_free_space procedimiento almacenado del sistema mueve todas las filas de una página, incluidos los registros fantasma si los hay, al inicio de la página, y luego inicializa a cero el resto del espacio de datos en la página. En entornos donde la seguridad física de los archivos de datos o del almacenamiento subyacente está en riesgo, se puede utilizar este procedimiento almacenado para asegurar que no queden datos residuales eliminados en los archivos de datos ni en el almacenamiento.

El tiempo necesario para ejecutarse sp_clean_db_free_space depende del tamaño de los archivos de datos, el número de páginas utilizadas en los archivos y las capacidades de E/S del disco. Dado que correr sp_clean_db_free_space puede aumentar significativamente la actividad de entrada/salida, recomendamos que realices este procedimiento fuera del horario habitual.

Antes de ejecutar sp_clean_db_free_space, se recomienda crear una copia de seguridad completa de la base de datos.

Para realizar esta operación por archivo de base de datos, use sp_clean_db_file_free_space.

Permisos

Requiere la pertenencia al db_owner rol de base de datos.

Ejemplos

El siguiente ejemplo limpia todos los datos residuales de la AdventureWorks2025 base de datos.

USE master;
GO

EXECUTE sp_clean_db_free_space @dbname = N'AdventureWorks2022';