2022年SQL收缩数据库 2.pdf

上传人:C****o 文档编号:40158454 上传时间:2022-09-08 格式:PDF 页数:4 大小:44.76KB
返回 下载 相关 举报
2022年SQL收缩数据库 2.pdf_第1页
第1页 / 共4页
2022年SQL收缩数据库 2.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年SQL收缩数据库 2.pdf》由会员分享,可在线阅读,更多相关《2022年SQL收缩数据库 2.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、SQL 收缩数据库SQL里面删除数据后,MDF的大小并没有减少,有没有办法能删除数据后,mdf文件能跟着减少。收缩数据库SQL Server 2000 自动收缩有大量可用空间的数据库。该进程仅适用于那些autoshrink 选项设置为 true 的数据库。服务器定期检查每个数据库中的空间使用情况。如果发现数据库中有大量闲置空间,而且它的 autoshrink 选项设置为 true,SQL Server 就缩小该数据库中的文件大小。也可以使用 SQL Server 企业管理器或 DBCC SHRINKDATABASE 和 DBCC SHRINKFILE 语句,手工收缩数据库中的文件。如何收缩数据

2、库(企业管理器)展开服务器组,然后展开服务器。展开 数据库 文件夹,右击要收缩的数据库,指向 所有任务 ,然后单击 收缩数据库 命令。要指定数据库的收缩量,请从以下选项中选择:在收缩后文件中的最大可用空间 中输入收缩后数据库中剩余的可用空间量。以 数据库大小,可用空间 值作为依据。选择 在收缩前将页移到文件起始位置,使释放的文件空间保留在数据库文件中,并使包含数据的页移到数据库文件的起始位置。单击 调度 命令创建或更改自动收缩数据库的频率和时间。如果要收缩个别的数据库文件,请单击 收缩文件 。说明 不能将数据库的大小收缩到小于 model 数据库的大小DBCC SHRINKDATABASE 收

3、缩指定数据库中的数据文件大小。语法DBCC SHRINKDATABASE(database_name ,target_percent ,NOTRUNCATE|TRUNCATEONLY )参数database_name 是要收缩的数据库名称。数据库名称必须符合标识符的规则。有关更多信息,请参见使用标识符。target_percent 是数据库收缩后的数据库文件中所要的剩余可用空间百分比。NOTRUNCATE 导致在数据库文件中保留所释放的文件空间。如果未指定,将所释放的文件空间释放给操作系统。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 4 页 -TRUNCATEONLY 导致将

4、数据文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次所分配的大小,从而减少文件大小,而不移动任何数据。不试图重新定位未分配页的行。使用 TRUNCATEONLY 时,忽略 target_percentis。注释Microsoft?SQL Server?可收缩:特定数据库的所有数据和日志文件。执行 DBCC SHRINKDATABASE。一次一个特定数据库中的数据或日志文件。执行 DBCC SHRINKFILE。DBCC SHRINKDATABASE 以每个文件为单位对数据文件进行收缩。然而,DBCC SHRINKDATABASE 在对日志文件进行收缩时,看起来好像所有的日志文件都存

5、在于一个连续的日志池中。假设名为 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

6、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)大

7、于 100%。因为所要求的可用百分比加上数据文件占用的当前百分比大于 100%(多出10%),所以任何大于 30 的 target_size 都不会收缩该数据文件。对于日志文件,SQL Server 使用 target_percent 以对整个日志的目标大小进行计算;因此,target_percent 是收缩操作后日志中的可用空间大小。之后,整 个 日 志 的 目 标 大 小 可 以 解 释 为 每 个 日 志 文 件 的 目 标 大 小。DBCC SHRINKDATABASE 尝试立即将每个物理日志文件收缩到其目标大小。如果虚拟日志中的所有逻辑日志部分都没有超出日志文件的目标大小,则该文件将

8、成功截断,DBCC SHRINKDATABASE 完成且不显示任何消息。然而,如果虚拟日志中的逻辑日志部分超出其目标大小,则 SQL Server 释放尽可能多的空间并发出一条消息。该消息告诉您需要执行什么操作来移动文件末尾超出虚拟日志的逻辑日志部分。执行完该操作后,可以重新发出 DBCC SHRINKDATABASE 命令以释放剩余的空间。有关收缩事务日志的更多信息,请参见收缩事务日志。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 4 页 -因为日志文件只能收缩到虚拟日志文件边界,所以不可能将日志文件收缩到比虚拟日志文件更小(即使现在没有使用该文件)。例如,可以将数据库的 1

9、 GB 日志文件收缩到只有 128 MB。有关截断的更多信息,请参见截断事务日志。有关确定虚拟日志文件大小的更多信息,请参见虚拟日志文件。由 DBCC SHRINKDATABASE 计算的数据和日志文件的目标大小始终不小于文件的最小大小。文件的最小大小是在文件最初创建时指定的大小,或是上一次用更改文件大小的操作(如用带有 MODIFY FILE 选项的 ALTER DATABASE 或 DBCC SHRINKFILE)显式设置的大小。例如,如果在执行 CREATE DATABASE 时,将 mydb 的所有数据和日志文件大小都指定为 10 MB,则每个文件的最小大小都为 10 MB。DBCC

10、SHRINKDATABASE 不能收缩任何小于 10 MB 的文件。如果使用带有 MODIFY FILE 选项的 ALTER DATABASE 将其中的一个文件显示增长到 20 MB,则该文件新的最小大小为 20 MB。若要将文件大小收缩到小于其最小大小,请使用 DBCC SHRINKFILE 并指定新大小。执行 DBCC SHRINKFILE 会将文件的最小大小更改为所指定的新大小。在使用数据文件时,DBCC SHRINKDATABASE 有 NOTRUNCATE 和 TRUNCATEONLY 选项。如 果 为 日 志 文 件 指 定 这 两 个 选 项,则 将 忽 略 这 两 个 选 项。

11、DBCC SHRINKDATABASE 不带任何选项等价于 DBCC SHRINKDATABASE 带有 NOTRUNCATE 选项,后面还要跟着带有 TRUNCATEONLY 选项的 DBCC SHRINKDATABASE。不论是否指定 target_percent,NOTRUNCATE 选项都执行 DBCC SHRINKDATABASE 的实际数据移动操作(包括将分配页从文件的末尾移动到文件前面的未分配页)。然而,文件末尾的可用空间不会返回给操作系统,文件的物理大小也不会更改。因此,如果指定 NOTRUNCATE 选项,数据文件好像没有收缩。例如,假设再次使用 mydb 数据库,该 myd

12、b 有两个数据文件和两个日志文件。第二个数据文件和第二个日志文件的大小都为 10 MB。执行 DBCC SHRINKDATABASE mydb NOTRUNCATE 时,Microsoft SQL Server 将数据从数据文件的后面几页移动到前面几页中。而文件的大小仍然为 10 MB。TRUNCATEONLY 选项 将文 件末 尾的 所 有 可用 空 间 收回 给操 作系 统。然 而,TRUNCATEONLY 在文件内不执行任何页移动操作。指定的文件只能收缩到上一次分配的大小。如果使用 TRUNCATEONLY 选项指定 target_percent,则忽略后者。所生成的数据库不能比 mod

13、el 数据库更小。要收缩的数据库不必在单用户模式下;其他的用户仍可以在数据库收缩时对其进行工作。这也包括系统数据库。结果集下表描述结果集内的列。列名描述DbId SQL Server 试图收缩的文件的数据库标识号。FileId SQL Server 试图收缩的文件的文件标识号。CurrentSize 文件当前占用的8KB 页数。MinimumSize 文件可以占用的最小8KB 页数。这与文件的最小大小或最初创建时的大小相对应。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 4 页 -UsedPages 文件当前使用的8KB 页数。EstimatedPages SQL Server 估计文件能够收缩到的8KB 页数。说明SQL Server 并不显示未收缩的文件的行。权限DBCC SHRINKDA TABASE 权限默认授予sysadmin 固定服务器角色或db_owner 固定数据库角色的成员且不可转让。示例下例将UserDB 用户数据库中的文件减小,以使UserDB 中的文件有10%的可用空间。DBCC SHRINKDA TABASE(UserDB,10)GO 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 4 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁