Mco*_*col 28 sql-server shrink tempdb
在 SQL Server 2008 中缩小临时数据库时使用的最佳实践是什么?
使用以下方法有风险吗?
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
Run Code Online (Sandbox Code Playgroud)
小智 14
最好的做法是主动监控 Tempdb 的正常使用情况并相应地设置大小。如果这是 Tempdb 已经增长到如此大小并且它是 PROD 环境的一种情况,我会在每周维护期间重新启动 SQL Server 服务。之后 Tempdb 将恢复到其配置的大小。
只要不使用 Tempdb 就可以缩小文件,否则现有事务可能会因阻塞和死锁而从性能角度受到影响。
清理过程缓存、缓冲区缓存等将对数据库性能本身产生负面影响,直到它们不被重新创建。我不会在 PROD 上这样做。
希望有帮助!
| 归档时间: |
|
| 查看次数: |
157777 次 |
| 最近记录: |