sp_clean_db_free_space (Transact-SQL)
- Artículo
- 01/29/2021
- 2 minutos para leer
-
- m
- c
- r
- p
- M
-
+4
se Aplica a: SQL Server (todas las versiones compatibles)
Elimina la información residual que queda en las páginas de la base de datos debido a las rutinas de modificación de datos en SQL Server. sp_clean_db_free_space limpia todas las páginas de todos los archivos de la base de datos.
Convenciones de sintaxis Transact-SQL
Sintaxis
sp_clean_db_free_space 'database_name' 'delay_in_seconds' ]
Argumentos
@dbname = ‘database_name’
Es el nombre de la base de datos a limpiar. dbname es sysname 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 int con un valor predeterminado de 0.
Devolver valores de código
0 (éxito) o 1 (error)
Observaciones
Eliminar operaciones de una tabla u actualizar operaciones que hacen que una fila se mueva puede liberar espacio de inmediato en una página al eliminar las referencias a la fila. Sin embargo, en ciertas circunstancias, la fila puede permanecer físicamente en la página de datos como un registro fantasma. Los registros fantasma se eliminan 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 los archivos de copia de seguridad está en riesgo, puede usar sp_clean_db_free_space
para limpiar estos registros fantasma. Para realizar esta operación por archivo de base de datos, utilice sp_clean_db_file_free_space (Transact-SQL).
El tiempo necesario para ejecutar sp_clean_db_free_space depende del tamaño del archivo, del espacio libre disponible y de la capacidad del disco. Debido a que ejecutar sp_clean_db_free_space
puede afectar significativamente la actividad de E/S, le recomendamos que ejecute este procedimiento fuera de las horas de operación habituales.
Antes de ejecutar sp_clean_db_free_space
, le recomendamos que cree una copia de seguridad completa de la base de datos.
El procedimiento almacenado sp_clean_db_file_free_space relacionado puede limpiar un solo archivo.
Permisos
Requiere ser miembro del rol de base de datos db_owner
.
Ejemplos
El siguiente ejemplo limpia toda la información residual de la base de datos AdventureWorks2012
.
USE master; GO EXEC sp_clean_db_free_space @dbname = N'AdventureWorks2012';
Véase También
Procedimientos almacenados del Motor de base de datos (Transact-SQL)
Guía de Procesos de Limpieza fantasma
sp_clean_db_file_free_space (Transact-SQL)