sp_clean_db_free_space (Transact-SQL)

gäller för:SQL ServerAzure SQL Managed Instance

Tar bort kvarvarande information på datasidor. sp_clean_db_free_space rensar alla sidor i alla datafiler i databasen.

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

[ @dbname = ] N'dbname'

Namnet på databasen som ska rensas. @dbname är sysname, utan standard.

[ @cleaning_delay = ] cleaning_delay

Anger ett intervall för fördröjning innan rensningen av varje sida, i sekunder. @cleaning_delay är int, med standardvärdet .0 Denna fördröjning hjälper till att minska belastningen på I/O-systemet på bekostnad av att förlänga saneringsprocessens varaktighet.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Anmärkningar

Systemproceduren sp_clean_db_free_space flyttar alla rader på en sida, inklusive de spökpostar om sådana finns, till början av sidan och nollinitialiserar sedan resten av datautrymmet på sidan. I miljöer där den fysiska säkerheten för datafilerna eller den underliggande lagringen är i fara, kan du använda denna lagrade procedur för att säkerställa att ingen kvarvarande raderad data finns kvar i datafilerna eller i lagringen.

Tiden som krävs för att köra sp_clean_db_free_space beror på storleken på datafilerna, antalet använda sidor i filerna och diskens I/O-funktioner. Eftersom löpning sp_clean_db_free_space kan öka I/O-aktiviteten avsevärt rekommenderar vi att du utför denna procedur utanför de vanliga öppettiderna.

Innan du kör sp_clean_db_free_spacerekommenderar vi att du skapar en fullständig databasbackup.

För att utföra denna operation per databasfil, använd sp_clean_db_file_free_space.

Permissions

Kräver medlemskap i db_owner databasrollen.

Examples

Följande exempel rensar all kvarvarande data från databasen AdventureWorks2025 .

USE master;
GO

EXECUTE sp_clean_db_free_space @dbname = N'AdventureWorks2022';