Was ist die beste Vorgehensweise beim Verkleinern der temporären Datenbank in SQL Server 2008?
Ist es riskant, Folgendes zu verwenden?
use tempdb
GO
DBCC FREEPROCCACHE -- clean cache
DBCC DROPCLEANBUFFERS -- clean buffers
DBCC FREESYSTEMCACHE ('ALL') -- clean system cache
DBCC FREESESSIONCACHE -- clean session cache
DBCC SHRINKDATABASE(tempdb, 10); -- shrink tempdb
dbcc shrinkfile ('tempdev') -- shrink db file
dbcc shrinkfile ('templog') -- shrink log file
GO
-- report the new file sizes
SELECT name, size
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');
GO
sql-server
shrink
tempdb
Mcol
quelle
quelle
Antworten:
Es wird empfohlen, die normale Verwendung von Tempdb proaktiv zu überwachen und die Größe entsprechend festzulegen. Wenn dies ein Einzelfall ist, in dem die Tempdb auf eine solche Größe und eine PROD-Umgebung angewachsen ist, würde ich SQL Server Services während der wöchentlichen Wartung neu starten. Danach würde Tempdb auf seine konfigurierte Größe zurückkehren.
Das Verkleinern der Datei ist in Ordnung, solange Tempdb nicht verwendet wird. Andernfalls können bestehende Transaktionen unter Performance-Gesichtspunkten aufgrund von Blockierungen und Deadlocks beeinträchtigt werden.
Bereinigungsprozedur-Cache, Puffer-Cache usw. wirken sich negativ auf die Datenbankleistung selbst aus, bis diese nicht neu erstellt werden. Ich würde das bei PROD nicht machen.
Hoffentlich hilft das!
quelle