his数据库最近增长太快了,基本上每天接近200M,以前每天最多增加5M,数据量和以前基本上差不多的
用exec sp_spaceused查询了其中的一些表与前段时间备份的数据库作了比较,比如
exec sp_spaceused 'MZ_GHDJB'分别对两个数据库查询
name      rows       reserved      data        index_size       unused             
MZ_GHDJB  82515      537960 KB     24744 KB  262224 KB 250992 KB
MZ_GHDJB  281079     378928 KB     34624 KB  293808 KB 50496 KB
第一行对应的数据库前段时间把表中的历史数据删除了一部分,就是现在用的,第二行对应的数据库是历史数据删除前的数据库,第一行rows为82515比第二行的少了近20万行,但是reserved的空间却比下面的多了近200M,这是什么原因啊,正常情况下应该第二行reserved的空间应该比第一行的大很多,怎么解决啊,求各位老师指教!

解决方案 »

  1.   

    收缩了,不行的,MDF文件中的实际使用空间在增大,不是单纯的文件增大
      

  2.   

    不用收缩,反正空间能用或者说你不必作任何处理,也不必大惊小怪。删除后,空间归到unused ,以后增加的数据就会占用,一段时间数据库文件不会增长,好过现在收缩了再增长出来几百M的大小,差十倍也没多少,不用理他
      

  3.   

    有两个办法:
    1.新建一个表把表MZ_GHDJB2,然后把把表MZ_GHDJB数据导入到MZ_GHDJB2中,然后删除MZ_GHDJB,将MZ_GHDJB2更名为MZ_GHDJB.
    2.重建MZ_GHDJB聚集索引。
      

  4.   

    顶一下 我也是受害者之一 我们的服务器 IBM服务器 至强CPU 硬盘是最新的sc硬盘做的RAD1 
    操作系统为 WIN2003+SQL2000+sql2000SP4补丁 原来每天10M增长 
    后来服务器出问题 重做了下操作系统 操作系统仍为WIN2003 +sql2000+sql2000sp4补丁现在每天以200MB的速度增长  现在还没想好怎么处理呢。
      

  5.   

    1.新建一个表把表MZ_GHDJB2,然后把把表MZ_GHDJB数据导入到MZ_GHDJB2中,然后删除MZ_GHDJB,将MZ_GHDJB2更名为MZ_GHDJB.
    2.重建MZ_GHDJB聚集索引。
    我试了用这个方法是可以的,但是HIS中的表太多了,这样做工作量太大,很多表都有触发器,还有些事关联的,数据量又大,容易出错的,有没有什么更好的办法啊
      

  6.   

    我们这边也出现这个问题啊,SQL2000,以前好几年都没什么事,最近MDF每三天增大一个G啊,吓人啊,数据量河访问量都跟以前差不多,不至于啊求高手指点