Qual é a melhor prática a ser usada ao reduzir o banco de dados temporário no SQL Server 2008?
É arriscado usar o seguinte?
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
fonte
fonte
Respostas:
É uma prática recomendada monitorar proativamente o uso normal do Tempdb e definir o tamanho adequadamente. Se esse for um caso em que o Tempdb tenha crescido para esse tamanho e seja um env de PROD, eu reiniciaria o SQL Server Services durante a manutenção semanal. Depois, o Tempdb retornaria ao tamanho configurado.
Reduzir o arquivo é bom, desde que o Tempdb não esteja sendo usado; caso contrário, as transações existentes podem ser afetadas do ponto de vista do desempenho devido a bloqueios e bloqueios.
O cache do procedimento de limpeza, os caches de buffer, etc. terão um impacto negativo no desempenho do banco de dados até que eles não sejam recriados. Eu não faria isso no PROD.
Espero que ajude!
fonte