Condividi tramite


sp_clean_db_file_free_space (Transact-SQL)

Si applica a:SQL ServerIstanza gestita di Azure SQL

Rimuove le informazioni residue nelle pagine dati. sp_clean_db_file_free_space pulisce tutte le pagine in un solo file di un database.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @dbname = ] N'dbname'

Nome del database da pulire. @dbname è sysname, senza impostazione predefinita.

[ @fileid = ] fileid

ID del file di dati da pulire. @fileid è int, senza impostazione predefinita.

[ @cleaning_delay = ] cleaning_delay

Specifica un intervallo da ritardare prima della pulizia di ogni pagina, in secondi. @cleaning_delay è int, con il valore predefinito 0. Questo ritardo aiuta a ridurre il carico sul sistema I/O a scapito di allungare la durata del processo di pulizia.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

La sp_clean_db_file_free_space procedura di memoria di sistema sposta tutte le righe di una pagina, inclusi i record fantasma se presenti, all'inizio della pagina, e poi inizializza a zero il resto dello spazio dati sulla pagina. In ambienti in cui la sicurezza fisica dei file dati o dello storage sottostante è a rischio, si può utilizzare questa procedura di archiviazione per garantire che non rimangano dati residui cancellati nei file o nell'archiviazione.

Il tempo necessario per l'esecuzione sp_clean_db_file_free_space dipende dalla dimensione del file dati, dal numero di pagine utilizzate nel file e dalle capacità di I/O del disco. Poiché correre sp_clean_db_file_free_space può aumentare significativamente l'attività I/O, consigliamo di eseguire questa procedura al di fuori degli orari abituali.

Prima di eseguire sp_clean_db_file_free_space, è consigliabile creare un backup completo del database.

Per eseguire questa operazione per tutti i file dati in un database, si utilizza sp_clean_db_free_space.

Autorizzazioni

Richiede l'appartenenza al ruolo del database db_owner .

Esempi

Nell'esempio seguente vengono eliminate le informazioni residue dal file di dati primario del database AdventureWorks2025.

USE master;
GO

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