--SQLSERVER tempdb 数据库异常增大,导致服务器卡顿,最简单的方法就是重启系统.tempdb 会自动重新创建恢复到初始大小(比如8M).
--1.tempdb 文件过大,可以通过重新启动系统,tempdb数据文件及Log会释放空间到初始大小(比如8M).
--2.tempdb 在系统默认的C盘,自动扩展过大可能导致系统盘C盘空间问题,需要迁移到数据盘 。
Use master
Alter database tempdb modify file (NAME='TEMPDEV',FILENAME='D:\SQLDATA\TEMPDB.MDF'); GO
Alter database tempdb modify file
(NAME='TEMPLOG',FILENAME='D:\SQLDATA\TEMPLOG.LDF'); GO
上面命令会将Tempdb库对应的数据文件及Log文件指向新的物理路径下的新文件。 但是需要重新启动后才会生效 。
--3.如何在线缩小tempdb,最好在非生产时间或周末进行。
use tempdb
dbcc shrinkfile('tempdev')
use tempdb
dbcc shrinkfile('templog')
或者
use tempdb
go
DBCC SHRINKFILE (N’tempdb.mdf’ , 0, TRUNCATEONLY) –释放所有可用空间
go
DBCC SHRINKFILE (N’tempdb.mdf’ , 500) — 收缩datafile到 500MB
go
DBCC SHRINKFILE (N’templog.ldf’ , 10) — 收缩日志到 10MB
go