tempdb文件太大的问题,各位大侠来看下! 我们现在的一个系统,在运行一段超级复杂的查询以后,tempdb会从500m增大到1g,而且在查询完以后,没有自动从1g回到500m,我该如何设置才能使大小正常呢?注:不想改那些已经写好的存储过程,因为有很多业务逻辑在里面。而且在sql2000是正常的,但是到2005上就会出现tempdb不断增大的问题。谢谢哪位指教一下啦 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 tempdb 重启SqlServer服务就会自动恢复,1G的大小很正常Sql2005比2000要求更大的tempdb数据库可以参考MSDN:解决 tempdb 中磁盘空间不足的问题 主动加大tempdb大小,根据业务需要,如果确要1G,那干脆加大到1.5G --A. 将tempdb数据库的主数据文件大小设置为10MB。ALTER DATABASE tempdbMODIFY FILE( name=tempdev, size=100 MB)GO--B. 将tempdb数据库的主数据文件移动到指定的磁盘分区上,并且为其添加一个数据文件。--移动主数据文件ALTER DATABASE tempdb MODIFY FILE ( NAME='tempdev', FILENAME ='d:\tempdb.mdf')--添加次要数据文件ALTER DATABASE tempdb ADD FILE ( NAME='tempdata_1', FILENAME ='d:\tempdb_data_1.ndf') 谢谢两位的回答,但是我现在的问题是,如果我不停的执行复杂查询的话,即使查询结束,tempdb也不会回复到原来的大小,不会从1g变成500m,而且如果再次执行复杂查询的话,还会继续从1g继续上涨,有没有什么办法控制住呢?因为sqlserver服务器这边不太好频繁重启,因为是上线的业务系统,谢谢了 tempdb中长期不用的东西是会自动清除的,但是空间不会释放,如果觉得太大了可以自己去收缩 谢谢两位的回答,但是我现在的问题是,如果我不停的执行复杂查询的话,即使查询结束,tempdb也不会回复到原来的大小,不会从1g变成500m,而且如果再次执行复杂查询的话,还会继续从1g继续上涨,有没有什么办法控制住呢?因为sqlserver服务器这边不太好频繁重启,因为是上线的业务系统,谢谢了---限制tempdb的最大值 但是限制最大值的话,比如说10g的话,那一直增长到10g的话,数据库会自动的对tempdb进行清理吗? 关于tempdb的一些使用要点:===============================SQL2005比SQL2000对tempdb的要求更多一些, 比如,一些原来在2000里面放到日志文件的操作被放到了tempdb里面。不建议收缩tempdb的大小,因为这需要把tempdb至少转到单独用户模式下面,另外,tempdb里面的一些对象是不能被回收的。事先增大tempdb的大小,并且要设置允许自动增长,以防止峰值或者其他额外的需求。把tempdb放到独立的物理盘上,并保证有足够的空间。监控tempdb的增长情况和使用情况,并预先做好计划(比如增加磁盘空间,预先扩大..)。根据CPU的数量设置对应的tempdb的数据文件,比如你有4个CPU,就为tempdb设置4个data file,以获得最好的文件访问并发性。 tempdb的大小没关系的.重启动计算机后该没的就没了. 另外,为保证系统的正常运行,建议把tempdb的空间加大. 查询分析器连接SQL SERVER的问题 我刚装完系统(windows7旗舰版),又装了IIS,还是装不了SQL2005开发版?为什么啊? SQL语法如何实现像VB中Format函数那样的功能?如,1转换为01 超简单SQL 语句 奇怪问题,高手请进. sql有没有分散的函数阿? 苹果问题 数据库还原到某个时间点(高分求教)! 非常奇怪,无比郁闷. 多表查询统计新人求帮助 进来吧,很简单的 关于数据更新的问题
ALTER DATABASE tempdb
MODIFY FILE(
name=tempdev,
size=100 MB)
GO--B. 将tempdb数据库的主数据文件移动到指定的磁盘分区上,并且为其添加一个数据文件。
--移动主数据文件
ALTER DATABASE tempdb MODIFY FILE
( NAME='tempdev',
FILENAME ='d:\tempdb.mdf')--添加次要数据文件
ALTER DATABASE tempdb ADD FILE
( NAME='tempdata_1',
FILENAME ='d:\tempdb_data_1.ndf')
===============================SQL2005比SQL2000对tempdb的要求更多一些, 比如,一些原来在2000里面放到日志文件的操作被放到了tempdb里面。不建议收缩tempdb的大小,因为这需要把tempdb至少转到单独用户模式下面,另外,tempdb里面的一些对象是不能被回收的。事先增大tempdb的大小,并且要设置允许自动增长,以防止峰值或者其他额外的需求。把tempdb放到独立的物理盘上,并保证有足够的空间。监控tempdb的增长情况和使用情况,并预先做好计划(比如增加磁盘空间,预先扩大..)。根据CPU的数量设置对应的tempdb的数据文件,比如你有4个CPU,就为tempdb设置4个data file,以获得最好的文件访问并发性。