压缩数据库:
DBCC SHRINKDATABASE (数据库名)压缩表:
DBCC UPDATEUSAGE ('数据库名', '表名', '表主键')

解决方案 »

  1.   

    你只要找到占用空间比较大的表进行压缩就可以了
    并不需要压缩所有的表查询每个表的使用空间:-- drop table #tb
    create table #tb(表名 sysname,记录数 int,
    保留空间 varchar(10),使用空间 varchar(10)
    ,索引使用空间 varchar(10),未用空间 varchar(10))insert into #tb exec sp_MSForEachTable 'EXEC sp_spaceused ''?'''
    select * from #tb
    order by cast(left(使用空间,len(使用空间)-3) as numeric)
      

  2.   


    --先备份数据库--截断事务日志
    backup log 数据库名 with no_log
    go--收缩数据库
    dbcc shrinkdatabase(数据库名)
    go
      

  3.   

    backup log 数据库名 with no_log
    go--收缩数据库
    dbcc shrinkdatabase(数据库名)
    go
    按照这种方法已经处理过很多遍了,但是没有实际效果
      

  4.   

    这个问题我曾经也遇到过,就是怎么收缩都不管用.过那是SQL97版,具体解决办法是用将数据库增长限制,然后用一张大数据的临时表不断交换数据,重复使用该方法.日志文件会不断减少.