SQL收缩数据库.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL收缩数据库

SQL收缩数据库SQL里面删除数据后,MDF的大小并没有减少,有没有办法能删除数据后,mdf文件能跟着减少。 收缩数据库 SQL Server 2000 自动收缩有大量可用空间的数据库。该进程仅适用于那些 autoshrink 选项设置为 true 的数据库。服务器定期检查每个数据库中的空间使用情况。如果发现数据库中有大量闲置空间,而且它的 autoshrink 选项设置为 true,SQL Server 就缩小该数据库中的文件大小。也可以使用 SQL Server 企业管理器或 DBCC SHRINKDATABASE 和 DBCC SHRINKFILE 语句,手工收缩数据库中的文件。 如何收缩数据库(企业管理器) 展开服务器组,然后展开服务器。 展开数据库文件夹,右击要收缩的数据库,指向所有任务,然后单击收缩数据库命令。 要指定数据库的收缩量,请从以下选项中选择: 在收缩后文件中的最大可用空间中输入收缩后数据库中剩余的可用空间量。以数据库大小,可用空间值作为依据。 选择在收缩前将页移到文件起始位置,使释放的文件空间保留在数据库文件中,并使包含数据的页移到数据库文件的起始位置。 单击调度命令创建或更改自动收缩数据库的频率和时间。 如果要收缩个别的数据库文件,请单击收缩文件。 说明 不能将数据库的大小收缩到小于 model 数据库的大小 DBCC SHRINKDATABASE 收缩指定数据库中的数据文件大小。 语法 DBCC SHRINKDATABASE ( database_name [ , target_percent ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ) 参数 database_name 是要收缩的数据库名称。数据库名称必须符合标识符的规则。有关更多信息,请参见使用标识符。 target_percent 是数据库收缩后的数据库文件中所要的剩余可用空间百分比。 NOTRUNCATE 导致在数据库文件中保留所释放的文件空间。如果未指定,将所释放的文件空间释放给操作系统。 TRUNCATEONLY 导致将数据文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次所分配的大小,从而减少文件大小,而不移动任何数据。不试图重新定位未分配页的行。使用 TRUNCATEONLY 时,忽略 target_percentis。 注释 Microsoft? SQL Server? 可收缩: 特定数据库的所有数据和日志文件。执行 DBCC SHRINKDATABASE。 一次一个特定数据库中的数据或日志文件。执行 DBCC SHRINKFILE。 DBCC SHRINKDATABASE 以每个文件为单位对数据文件进行收缩。然而,DBCC SHRINKDATABASE 在对日志文件进行收缩时,看起来好像所有的日志文件都存在于一个连续的日志池中。 假设名为 mydb 的数据库有两个数据文件和两个日志文件。这些数据文件和日志文件大小都为 10 MB。第一个数据文件包含 6 MB 数据。 对于每个文件,SQL Server 计算目标大小,即要收缩文件到的大小。当用 target_percent 指定 DBCC SHRINKDATABASE 时,SQL Server 计算的目标大小是收缩后文件中的 target_percent 可用空间大小。例如,如果指定按 target_percent 为 25 收缩 mydb。SQL Server 计算的该文件的目标大小为 8 MB(6 MB 数据加上 2 MB 可用空间)。因此,SQL Server 将任何数据从数据文件的最后 2 MB 中移动到数据文件前 8 MB 的可用空间中,然后对该文件进行收缩。 假设 mydb 的第一个数据文件包含 7 MB 的数据。若将 target_percent 指定为 30,则允许将该数据文件收缩到所要的可用百分比 30。然而,若将 target_percent 指定为 40,就不会收缩该数据文件,因为 SQL Server 不能将文件收缩到比数据当前占有的空间还小的程度。也可以从另一个角度考虑这个问题:40% 要求的可用空间 + 70% 完整的数据文件(10 MB 中的 7 MB)大于 100%。因为所要求的可用百分比加上数据文件占用的当前百分比大于 100%(多出 10%),所以任何大于 30 的 target_size 都不会收缩该数据文件。 对于日志文件,SQL Server 使用 target_percent 以对整个日志的目标大小进行计算;因此,target_percent 是收缩操作后日志中的可用空间大小。之后,整个日志的目标大小可以解释为每个日志文件的目标大小。DBCC SHRINKDATABASE 尝试立即将每

您可能关注的文档

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档