我sqlserver 2005  执行了错误的遁环插入记录   记录已经删除了  但数据库体积仍旧很大  应该怎么办啊  

解决方案 »

  1.   

    DBCC SHRINKDATABASE
    收缩指定数据库中的数据文件大小。语法
    DBCC SHRINKDATABASE
        ( database_name [ , target_percent ]
            [ , { NOTRUNCATE | TRUNCATEONLY } ] 
        )参数
    database_name是要收缩的数据库名称。数据库名称必须符合标识符的规则。有关更多信息,请参见使用标识符。 target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比。 NOTRUNCATE导致在数据库文件中保留所释放的文件空间。如果未指定,将所释放的文件空间释放给操作系统。 TRUNCATEONLY导致将数据文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次所分配的大小,从而减少文件大小,而不移动任何数据。不试图重新定位未分配页的行。使用 TRUNCATEONLY 时,忽略 target_percentis。注释
      

  2.   

    DBCC SHRINKFILE
    收缩相关数据库的指定数据文件或日志文件大小。语法
    DBCC SHRINKFILE
        ( { file_name | file_id }
            { [ , target_size ]
                | [ , { EMPTYFILE | NOTRUNCATE | TRUNCATEONLY } ] 
            }
        )可以限制增长,或者截断
      

  3.   

    1、压缩日志
    2、压缩数据库库:
    DBCC SHRINKDATABASE 
    3:压缩指定的数据文件。
      

  4.   


    backup log db_name with truncate_only;如果日志文件很大,先要截断事务日志
    dbcc shrinkdatabase('db_name');
      

  5.   

    sp_who查看下是否可用空间很大。
      

  6.   


    直接备份下日志:
    backup log mydb to disk='d:\mydb.trn'
    就可以了。
      

  7.   

    收缩下数据库.....数据库压缩是SQL2008的功能