sp_clean_db_free_space (Transact-SQL)
- articol
- 01/29/2021
- 2 minute de citit
-
- m
- c
- r
- p
- M
-
+4
se aplică la: SQL Server(toate versiunile acceptate)
elimină informațiile reziduale rămase pe paginile bazei de date din cauza rutinelor de modificare a datelor din SQL Server. sp_clean_db_free_space curăță toate paginile din toate fișierele bazei de date.
Transact-SQL sintaxă convenții
sintaxă
sp_clean_db_free_space 'database_name' 'delay_in_seconds' ]
argumente
@dbname = ‘database_name’
este numele bazei de date pentru a curăța. dbname este sysname și nu poate fi nul.
@cleaning_delay = ‘delay_in_seconds’
specifică un interval de întârziere între curățarea paginilor. Acest lucru ajută la reducerea efectului asupra sistemului I/O. delay_in_seconds este int cu o valoare implicită de 0.
returnați valorile Codului
0 (succes) sau 1 (eșec)
observații
ștergerea operațiilor dintr-un tabel sau actualizarea operațiilor care determină mutarea unui rând pot elibera imediat spațiu pe o pagină eliminând referințele la rând. Cu toate acestea, în anumite circumstanțe, rândul poate rămâne fizic pe pagina de date ca o înregistrare fantomă. Înregistrările fantomă sunt eliminate periodic printr-un proces de fundal. Aceste date reziduale nu sunt returnate de motorul bazei de date ca răspuns la interogări. Cu toate acestea, în medii în care securitatea fizică a datelor sau a fișierelor de rezervă este în pericol, puteți utiliza sp_clean_db_free_space
pentru a curăța aceste înregistrări fantomă. Pentru a efectua această operație pe fișier de bază de date, utilizați sp_clean_db_file_free_space (Transact-SQL).
durata de timp necesară pentru a rula sp_clean_db_free_space depinde de dimensiunea fișierului, de spațiul liber disponibil și de capacitatea discului. Deoarece rularea sp_clean_db_free_space
poate afecta semnificativ activitatea I/O, vă recomandăm să executați această procedură în afara orelor obișnuite de funcționare.
înainte de a rula sp_clean_db_free_space
, vă recomandăm să creați o copie de rezervă completă a bazei de date.
procedura stocată sp_clean_db_file_free_space poate curăța un singur fișier.
permisiuni
necesită apartenența la rolul bazei de date db_owner
.
Exemple
următorul exemplu curăță toate informațiile reziduale din baza de date AdventureWorks2012
.
USE master; GO EXEC sp_clean_db_free_space @dbname = N'AdventureWorks2012';
a se vedea, de asemenea,
proceduri stocate motor de baze de date (Transact-SQL)
Ghid de proces de curățare fantomă
sp_clean_db_file_free_space (Transact-SQL)