• DBCC--SHRINKDATABASE


    --DBCC SHRINKDATABASE

    --收缩数据库

    --USAGE:

    dbcc SHRINKDATABASE

    (

        { 'database_name' | database_id | 0 }

        [ , target_percent ]

        [ , { NOTRUNCATE | TRUNCATEONLY } ]

    )

        [ WITH NO_INFOMSGS ]

     

     

    --DBCC SHRINKFILE

    --收缩指定数据库中特定文件

    dbcc SHRINKFILE

    (

        { 'file_name' | file_id }

        {

            [ , EMPTYFILE]

            | [ [, target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ]

        }

    )

        [ WITH NO_INFOMSGS ]

     

    --NOTRUNCATE

    --在指定或不指定target_percent 的情况下,将已分配的页从数据文件的末尾移动到该文件前面的未分配页。文件末尾的可用空间不会返回给操作系统,文件的物理大小也不会更改。因此,指定NOTRUNCATE 时,文件看起来未收缩。

    --NOTRUNCATE 只适用于数据文件。日志文件不受影响。

    --TRUNCATEONLY

    --将文件末尾的所有可用空间释放给操作系统,但不在文件内部执行任何页移动。数据文件只收缩到最后分配的区。

    --如果随TRUNCATEONLY 指定了target_size,则会忽略该参数。

    --TRUNCATEONLY 只适用于数据文件

     

     

    --1. SHRINKFILE 并不独占数据文件,且可以随时终止,停止之前收缩的工作将被保留。

    --2. SHRINKFILE 针对区做收缩,将使用的区前移,将不使用的区删除,但不会合并区,也不合并和删除区中的页,因此当区中空页过多或者页面填充度较低时,SHRINKFILE并不能释放过多的空间。

    --3. 如果碎片过多,可以先重建索引后再做SHRINKFILE

     

      

    --在SHRINKFILE后,需检查文件的真实大小,可能文件已被收缩,但SHRINKFILE结果显示没有收缩

     

    --由于sp_spaceused这个存储过程依赖于SQLSERVER存储在一些系统视图里的空间使用统计信息来算出结果,但是SQLSERVER并不保证实时更新空间使用统计信息。尤其是数据库刚刚发生大的变化之后,sp_spaceused的结果常常不准确

     

    --参考:

    --http://www.cnblogs.com/lyhabc/articles/3219563.html

    --http://msdn.microsoft.com/zh-cn/library/ms189493.aspx

  • 相关阅读:
    ubuntu 修改mysql 5.7数据库密码
    maven 配置
    数据仓库的命名规范
    mysql 之 在查询字段中得出分钟数
    mysql 之 timestampdiff() 函数 ,得到间隔分钟数
    linux 服务器上下载文件到本地
    mysql 之 时间格式 今年的第一天,去年的第一天
    mysql 之 str_to_date ()函数 和date_format()函数
    网络不可用时~更改DNS并刷新
    mysql之 round()函数 , concat()函数
  • 原文地址:https://www.cnblogs.com/TeyGao/p/3518754.html
Copyright © 2020-2023  润新知