sql server 数据库收缩

Posted 句号1314

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 数据库收缩相关的知识,希望对你有一定的参考价值。

限制和局限

  • 收缩后的数据库不能小于数据库的最小大小。 最小大小是在数据库最初创建时指定的大小,或是上一次使用文件大小更改操作(如 DBCC SHRINKFILE)设置的显式大小。 例如,如果数据库最初创建时的大小为 10 MB,后来增长到 100 MB,则该数据库最小只能收缩到 10 MB,即使已经删除数据库的所有数据也是如此。

  • 不能在备份数据库时收缩数据库。 反之,也不能在数据库执行收缩操作时备份数据库。

  • 遇到 xVelocity 内存优化的列存储索引时,DBCC SHRINKDATABASE 将会失败。 遇到 columnstore 索引之前完成的工作将会成功,因此数据库可能会较小。 若要完成 DBCC SHRINKDATABASE,请在执行 DBCC SHRINKDATABASE 前禁用所有列存储索引,然后重新生成列存储索引。

建议

  • 若要查看数据库中当前的可用(未分配)空间量。 有关详细信息,请参阅 Display Data and Log Space Information for a Database

  • 当您计划收缩数据库时,请考虑以下信息:

    • 在执行会产生许多未使用空间的操作(如截断表或删除表操作)后,执行收缩操作最有效。

    • 大多数数据库都需要一些可用空间,以供常规日常操作使用。 如果反复收缩数据库并注意到数据库大小变大,则表明收缩的空间是常规操作所必需的。 在这种情况下,反复收缩数据库是一种无谓的操作。

    • 收缩操作不会保留数据库中索引的碎片状态,通常还会在一定程度上增加碎片。 这是不要反复收缩数据库的另一个原因。

    • 除非有特定要求,否则不要将 AUTO_SHRINK 数据库选项设置为 ON。

安全性

权限

要求具有 sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员身份。

以上是关于sql server 数据库收缩的主要内容,如果未能解决你的问题,请参考以下文章

怎样在SQL Server 2000中收缩数据库

sql server 中收缩数据库有意义吗

SQL Server数据库的收缩一直在执行

怎样在SQL Server 2000中收缩数据库

SQL SERVER如何收缩数据库

SQL Server中的收缩数据库,数据会丢失吗?