sp_clean_db_free_space (Transact-SQL)
- artikel
- 01/29/2021
- 2 minuter att läsa
-
- m
- c
- r
- p
- M
-
+4
gäller för: SQL Server(alla versioner som stöds)
tar bort kvarvarande information kvar på databassidor på grund av data modifiering rutiner i SQL Server. sp_clean_db_free_space rensar alla sidor i alla filer i databasen.
Transact-SQL-syntaxkonventioner
Syntax
sp_clean_db_free_space 'database_name' 'delay_in_seconds' ]
argument
@dbname = ’databasnamn’
är namnet på databasen som ska rengöras. dbname är sysname och kan inte vara NULL.
@cleaning_delay = ’delay_in_seconds’
anger ett intervall som ska fördröjas mellan rengöring av sidor. Detta bidrar till att minska effekten på I/O-systemet. delay_in_seconds är int med en standard på 0.
returnera kodvärden
0 (framgång) eller 1 (fel)
anmärkningar
ta bort åtgärder från en tabell eller uppdatera åtgärder som gör att en rad flyttas kan omedelbart frigöra utrymme på en sida genom att ta bort referenser till raden. Men under vissa omständigheter kan raden fysiskt förbli på datasidan som en spökrekord. Ghost-poster tas regelbundet bort av en bakgrundsprocess. Denna restdata returneras inte av databasmotorn som svar på frågor. I miljöer där den fysiska säkerheten för data eller säkerhetskopior är i fara kan du dock använda sp_clean_db_free_space
för att rengöra dessa spökposter. För att utföra denna operation per databasfil, använd sp_clean_db_file_free_space (Transact-SQL).
den tid som krävs för att köra sp_clean_db_free_space beror på filens storlek, tillgängligt ledigt utrymme och diskens kapacitet. Eftersom körning sp_clean_db_free_space
kan påverka I/O-aktivitet avsevärt, rekommenderar vi att du kör den här proceduren utanför vanliga driftstimmar.
innan du kör sp_clean_db_free_space
rekommenderar vi att du skapar en fullständig databasbackup.
den relaterade sp_clean_db_file_free_space lagrade proceduren kan rengöra en enda fil.
behörigheter
kräver medlemskap i databasrollen db_owner
.
exempel
följande exempel rensar all återstående information från databasen AdventureWorks2012
.
USE master; GO EXEC sp_clean_db_free_space @dbname = N'AdventureWorks2012';
Se även
databasmotor lagrade procedurer (Transact-SQL)
Ghost Cleanup Process Guide
sp_clean_db_file_free_space (Transact-SQL)