数据库版本:SQL2005
数据量描述:mdf文件60G, ndf文件130G
整个库包括几张表,对其中比较大的一张表进行操作,操作如下:增加一个字段,并通过该条记录其他字段的值对该字段进行赋值,即对整个表进行update。
问题如下:ndf文件变为了150G,log文件由1m增加为300G时,磁盘空间已经不足,可是我的update还没完成。请高手帮我分析下问题,指点一二。updte语句如下
declare @dateBegin datetime
set @dateBegin='20090101 00:00:00';
update tab1 set dayindex = DATEDIFF(day,@dateBegin,convert(datetime,substring(time,1,8))) + 1==============================
注,刚开始是对部分数据(几m的数据量)进行处理,然后用结合VBA在excel出图。现在用C#结合出图插件来做,因为c#里面有类似的dayindex 函数,所以这个update数据预处理可以放在程序里面来做了。所以在程序里面做就不需要SQL2005的UPDATE数据预处理了。
上面那段话是换了个思路,但是我还是想知道几十G数据如果需要UPDATE该怎么做。
大师现身!

解决方案 »

  1.   

    alter database database_name set recovery simple
    -- update
    alter database database_name set recovery full
      

  2.   

    直接加个计算列 试一试
    alter tab1 loan_base add dayindex as DATEDIFF(day,字段名1,字段名2) + 1
      

  3.   

    alter table tab1  add dayindex as DATEDIFF(day,字段名1,字段名2) + 1
      

  4.   

    1 首先把数据库改成SIMPLE模式,收缩你的LOG文件2 分批的UPDATE 你的数据3 最好开始考虑分区表(其实已经晚了,不过比不做要强)祝你好运