大家都知道,sql server数据库,系统数据库下面有个存放临时表的tempdb库 ,这个库应该是服务重启后就自动清除和重建的, 因为我当时把数据库默认路径装到C盘了,现在我的服务器上这个库一直在增大,C盘都快没空间了,我重启sql服务,重启电脑都没有用,还是在一直变大,在tempdb库下面的临时表文件夹里面有大量的以#号开头的表,也不给删除,都快40G了,哪位高人解答下,这个是啥原因?或者有什么好的方法能解决这个问题!
调试欢乐多
1、检查tempdb的逻辑名字和它的存在位置。可以使用下面语句:SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');2、暂停数据库服务.
3、拷贝原来tempdb的文件到新的位置(原来文件位置可以通过上述查询得到)。
3、拷贝完毕后,启动数据库服务。
4、执行如下命令:
USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'E:\tempdb\tempdb.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = 'E:\tempdb\templog.ldf');
GO
在这里,name=tempdev 和templog是tempdb的逻辑名字,FileName='E:\temdb\tempdb.mdf'是tempdb的新位置.
5、最后检查tempdb移动是否成功。SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');
是不是并发多,或者事务处理过多等等。
然后根据找到的原因进行对应的调整,比如修改SQL代码等等。
参考 收缩tempdbhttp://support.microsoft.com/kb/307487/zh-cn