Marzo 12, 2022

sp_clean_db_free_space (Transact-SQL)

  • Articolo
  • 01/29/2021
  • 2 minuti a leggere
    • m
    • c
    • r
    • p
    • M
    • +4
questa pagina è stata utile?

Grazie.

Si applica a: yes SQL Server (tutte le versioni supportate)

Rimuove le informazioni residue lasciate sulle pagine del database a causa delle routine di modifica dei dati in SQL Server. sp_clean_db_free_space pulisce tutte le pagine in tutti i file del database.

Icona collegamento argomento Convenzioni sintassi Transact-SQL

Sintassi

sp_clean_db_free_space 'database_name' 'delay_in_seconds' ] 

Argomenti

@dbname = ‘database_name’
È il nome del database da pulire. dbname è sysname e non può essere NULL.

@cleaning_delay = ‘delay_in_seconds’
Specifica un intervallo di ritardo tra la pulizia delle pagine. Questo aiuta a ridurre l’effetto sul sistema I/O. delay_in_seconds è int con un valore predefinito di 0.

Restituisce i valori del codice

0 (successo) o 1 (errore)

Note

Elimina le operazioni da una tabella o aggiorna le operazioni che causano lo spostamento di una riga possono liberare immediatamente spazio su una pagina rimuovendo i riferimenti alla riga. Tuttavia, in determinate circostanze, la riga può rimanere fisicamente nella pagina dei dati come record fantasma. I record fantasma vengono periodicamente rimossi da un processo in background. Questi dati residui non vengono restituiti dal motore di database in risposta alle query. Tuttavia, in ambienti in cui la sicurezza fisica dei dati o dei file di backup è a rischio, è possibile utilizzare sp_clean_db_free_space per pulire questi record fantasma. Per eseguire questa operazione per file di database, utilizzare sp_clean_db_file_free_space (Transact-SQL).

Il tempo necessario per eseguire sp_clean_db_free_space dipende dalla dimensione del file, dallo spazio libero disponibile e dalla capacità del disco. Poiché l’esecuzione di sp_clean_db_free_space può influire in modo significativo sull’attività di I/O, si consiglia di eseguire questa procedura al di fuori delle normali ore di funzionamento.

Prima di eseguire sp_clean_db_free_space, si consiglia di creare un backup completo del database.

La relativa stored procedure sp_clean_db_file_free_space può pulire un singolo file.

Autorizzazioni

Richiede l’appartenenza al ruolo del database db_owner.

Esempi

Il seguente esempio pulisce tutte le informazioni residue dal database AdventureWorks2012.

USE master; GO EXEC sp_clean_db_free_space @dbname = N'AdventureWorks2012'; 

Vedere anche

Stored Procedure del motore di database (Transact-SQL)
Ghost Cleanup Process Guide
sp_clean_db_file_free_space (Transact-SQL)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.