Compartir por


sp_clean_db_file_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_file_free_space limpia todas las páginas en un solo archivo de una base de datos.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_clean_db_file_free_space
    [ @dbname = ] N'dbname'
    , [ @fileid = ] fileid
    [ , [ @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.

[ @fileid = ] fileid

Identificador del archivo de datos que se va a limpiar. @fileid es int, sin 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_file_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_file_free_space depende del tamaño del archivo de datos, el número de páginas utilizadas en el archivo y las capacidades de E/S del disco. Dado que correr sp_clean_db_file_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_file_free_space, se recomienda crear una copia de seguridad completa de la base de datos.

Para realizar esta operación para todos los archivos de datos de una base de datos, utilice sp_clean_db_free_space.

Permisos

Requiere la pertenencia 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 AdventureWorks2025.

USE master;
GO

EXECUTE sp_clean_db_file_free_space
    @dbname = N'AdventureWorks2022',
    @fileid = 1;