Delen via


sp_clean_db_file_free_space (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL Managed Instance

Verwijdert resterende informatie op datapagina's. sp_clean_db_file_free_space maakt alle pagina's schoon in slechts één bestand van een database.

Transact-SQL syntaxis-conventies

Syntaxis

sp_clean_db_file_free_space
    [ @dbname = ] N'dbname'
    , [ @fileid = ] fileid
    [ , [ @cleaning_delay = ] cleaning_delay ]
[ ; ]

Arguments

[ @dbname = ] N'dbname'

De naam van de database die schoon moet worden. @dbname is een systeemnaam, zonder standaard.

[ @fileid = ] fileid

De data-bestands-ID moet schoon worden gemaakt. @fileid is int, zonder standaard.

[ @cleaning_delay = ] cleaning_delay

Geeft een interval aan om te wachten vóór het opruimen van elke pagina, in seconden. @cleaning_delay is int, met als standaard .0 Deze vertraging helpt de belasting op het I/O-systeem te verminderen, ten koste van een verlenging van de duur van het opruimproces.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Opmerkingen

De sp_clean_db_file_free_space systeemopslagprocedure verplaatst alle rijen op een pagina, inclusief de ghostrecords indien aanwezig, naar het begin van de pagina en initialiseert vervolgens de rest van de dataruimte op de pagina met nul-initialisatie. In omgevingen waar de fysieke beveiliging van de databestanden of de onderliggende opslag in gevaar is, kun je deze opgeslagen procedure gebruiken om ervoor te zorgen dat er geen resterende verwijderde data in de databestanden of in de opslag achterblijft.

De tijd die nodig is om uit te voeren sp_clean_db_file_free_space hangt af van de grootte van het databestand, het aantal gebruikte pagina's in het bestand en de I/O-mogelijkheden van de schijf. Omdat hardlopen sp_clean_db_file_free_space de I/O-activiteit aanzienlijk kan verhogen, raden wij aan deze procedure buiten de gebruikelijke werktijden uit te voeren.

Voordat je het uitvoert sp_clean_db_file_free_space, raden we aan om een volledige database-back-up te maken.

Om deze bewerking voor alle databestanden in een database uit te voeren, gebruik je sp_clean_db_free_space.

Permissions

Vereist lidmaatschap van de db_owner databaserol.

Voorbeelden

Het volgende voorbeeld verwijdert alle resterende informatie uit het primaire databestand van de AdventureWorks2025 database.

USE master;
GO

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