收缩 tempdb 数据库
2016-04-28 07:40
197 查看
客户需求:
这是一个生产环境,在夜深人静的时候发现 tempdb 已经超过500GB。
需求分析:
我们知道,如果重启 SQL Server,tempdb 会自动重新创建,从而使 tempdb 回归到初始大小。但是这是生产环境,不允许重启 SQL Server。
尝试:
直接收缩 tempdb,始终不成功。
USE [tempdb] DBCC SHRINKFILE (N'tempdev' , 0, TRUNCATEONLY) --释放所有可用空间 DBCC SHRINKFILE (N'tempdev' , 500) -- 收缩到 500MB GO |
解决方案:
SQL Server 2005 及后续版本为了增强 tempdb 的性能,会缓存一些 IAM 页,以备将来重新使用这些页面。在这种情况下,必须首先释放 IAM 页,才能释放其对应的页面。因此,通过 DBCC FREESYSTEMCACHE,从所有缓存中释放所有未使用的缓存条目,然后再收缩 tempdb 。
USE [tempdb] DBCC FREESYSTEMCACHE ('ALL') GO DBCC SHRINKFILE (N'tempdev' , 500) GO |
终于收缩到 500 MB。成功!
关于 DBCC FREESYSTEMCACHE,请参考 https://technet.microsoft.com/zh-cn/library/ms178529.aspx
阅读更多
相关文章推荐
- 如何收缩 SQL Server 中的 Tempdb 数据库
- 如何收缩 SQL Server 中的 Tempdb 数据库
- 如何收缩 SQL Server 中的 Tempdb 数据库
- [转]如何收缩 SQL Server 中的 Tempdb 数据库
- 如何收缩 SQL Server 中的 Tempdb 数据库[转]
- 收缩 tempdb 数据库
- 修改tempdb数据库的存储位置及收缩tempdb的方法
- SqlServer清除日志并收缩数据库
- 用代码来设置故障还原模型‘简单’以及‘收缩数据库
- SQLServer2008全套 数据库简介,分离,收缩,快照
- 数据库 'tempdb' 的日志已满。请备份该数据库的事务日志以释放一些日志空间
- SQL Server中收缩、清空和删除数据库文件及日志文件
- sqlServer2008 R2 下收缩数据库日志
- sql server收缩数据库
- 截断sqlserver 日志文件 收缩数据库文件
- 迁移sql server tempdb数据库
- 曲苑杂坛--收缩数据库日志
- 如何收缩超大的SharePoint_Config数据库
- sql调整tempdb数据库的文件属性
- 收缩数据库