日期:2014-05-18  浏览次数:20543 次

update+select的时候tempdb狂增长的问题
我在执行
update   op_xmxx   set   cssdq=a.zg_code,cssdqmc=g.[name]
[wzyw].dbo.qyzyzl   a   inner   join  
(select   qy_code,max(bgcs)   bgcs   from   [wzyw].dbo.qyzyzl     group   by   qy_code)   d  
on   a.qy_code=d.qy_code   and   a.bgcs=d.bgcs   inner   join   [wzyw].dbo.bmxzqh   g
on   a.zg_code=g.xzqh_code   inner   join   op_xmsx   b
on   a.qy_code=b.cxmbh
单纯查询也就只要半分钟的时间。大概有6-7W的数据量。但是执行更新需要30多分钟,而且tempdb增长了6G,谁能解释一下为什么会占那么大的空间啊?

------解决方案--------------------
tempdb每次启动sql server服务时自动重置为初始大小

tempdb由系统自动管理,一般不需要手工干预,唯一需要作的就是把初始大小设置为一个合适的值,至于手工收缩,我认为是不可取的。如果tempdb的尺寸增长很快,那应该检查你的应用是否使用了大量的临时表、是否进行了大的排序等
------解决方案--------------------
参考:
http://community.csdn.net/Expert/TopicView3.asp?id=5101387
------解决方案--------------------
select qy_code,max(bgcs) bgcs from [wzyw].dbo.qyzyzl group by qy_code的Group by。