SQL Server在每次重启服务时会重建数据库
如果系统运行过程中tempdb因需要自动增长了,SQL Serve不会记住增长后的大小,重启服务后仍然恢复到初始大小,但如果用户使用了手工调
整tempdb的大小,重启服务SQL Server会把tempdb重建为用户指定大小!
测试示例
tempdb初始化大小为8MB
1)使tempdb自动增长
select b.* into #t from sysprocesses a,sysobjects b
重启后使用sp_helpdb 'tempdb'
可以看到tempdb又恢复到8MB
2) 用户使用Alter Database调整为100MB,
USE master
GO
ALTER DATABASE tempdb
MODIFY FILE
(NAME = tempdev,SIZE = 100MB)
重启服务后使用查看tempdb大小就为100MB
以下查询可以看到tempdb的变化
select a.filename,a.name,a.size*8.0/1024.0 as originalsize_MB,
f.size*8.0/1024.0 as currentsize_MB
from master..sysaltfiles a join tempdb..sysfiles f on a.fileid=f.fileid
where dbid=db_id('tempdb')
and a.size<>f.size
总结:
a、当系统自动调整tempdb大小时,对文件的读写将暂时的阻塞
b、所以如果我们预知tempdb将会增加到某个大小时,可以自行调整,从而避免性能下降!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9173221/viewspace-11/,如需转载,请注明出处,否则将追究法律责任。