收缩数据库是什么意思

收缩数据库是什么意思,第1张

收缩数据库就是把数据库不需要或者没有用的东西进行资源回收,简单的说就是数据库压缩,比如你数据库的很大,你收缩下数据库就不会有那么大了,还有一个办法就是删除数据库日志,具体代码:

DUMP TRANSACTION [YZ] WITH NO_LOG --清空日志

BACKUP LOG [YZ] WITH NO_LOG --截断事务日志

DBCC SHRINKDATABASE([YZ]) --压缩数据库

DBCC UPDATEUSAGE ([YZ]) --报告和更正 sysindexes 表的不正确内容

exec sp_detach_db @dbname='数据库名'

exec sp_attach_single_file_db @name='数据库名',@hysname='C:\Program Files\Microsoft SQL Server\MSSQL1\MSSQL\Data\数据库名mdf'

你用数据库管理器选中数据库,先分离,然后再附加,然后再点收缩,收缩的时候先收缩日志文件,一般能收缩很多,记得要填写数字啊,比如上面提示能收缩为0,你就填个5兆,这样预留一点空间,而且很快,收缩完日志文件之后再收缩数据库 同理比最小能收缩量大几兆就可以了,但是收缩数据库比较慢 需要很多时间

数据库收缩的工作原理是:清理空白空间和日志来实现。

空白空间:删除表时,数据库的空间不会自动缩小,随着建的表越来越多,删除 ***

作越来越多时候,数据文件就会越来越多。

日志:是记录你历史 *** 作的,没用的都可以清除。

收缩数据库

数据库中的每个文件都可以通过删除未使用的页的方法来减小。尽管数据库引擎会有效地重新使用空间,但某个文件多次出现无需原来大小的情况后,收缩文件就变得很有必要了。数据和事务日志文件都可以减小(收缩)。可以成组或单独地手动收缩数据库文件,也可以设置数据库,使其按照指定的间隔自动收缩。

文件始终从末尾开始收缩。例如,如果有个5GB的文件,并且在DBCCSHRINKFILE语句中将target_size指定为4GB,则数据库引擎将从文件的最后一个1GB开始释放尽可能多的空间。如果文件中被释放的部分包含使用过的页,则数据库引擎先将这些页重新放置到文件的保留部分。只能将数据库收缩到没有剩余的可用空间为止。例如,如果某个5GB的数据库有4GB的数据,并且在DBCCSHRINKFILE语句中将target_size指定为3GB,则只能释放1GB。

自动数据库收缩

将AUTO_SHRINK数据库选项设置为ON后,数据库引擎将自动收缩具有可用空间的数据库。此选项可以使用ALTERDATABASE语句来进行设置。默认情况下,此选项设置为OFF。数据库引擎会定期检查每个数据库的空间使用情况。如果某个数据库的AUTO_SHRINK选项设置为ON,则数据库引擎将减少数据库中文件的大小。该活动在后台进行,并且不影响数据库内的用户活动。

将数据库设置为自动收缩

ALTERDATABASE(Transact-SQL)

手动数据库收缩

您可以使用DBCC语句或DBCCSHRINKFILE语句来手动收缩数据库或数据库中的文件。如果DBCC或DBCCSHRINKFILE语句无法回收日志文件中的所有指定空间,则该语句将发出信息性消息,指明必须执行什么 *** 作以便释放更多空间。有关收缩日志文件的详细信息,请参阅收缩事务日志。

在该过程中任意时间都可停止DBCC和DBCCSHRINKFILE *** 作,所有已完成工作都将保留。

在使用DBCC语句时,您无法将整个数据库收缩得比其初始大小更小。因此,如果数据库创建时的大小为10MB,后来增长到100MB,则该数据库最小只能收缩到10MB,即使已经删除数据库的所有数据也是如此。

但是,使用DBCCSHRINKFILE语句时,可以将各个数据库文件收缩得比其初始大小更小。必须对每个文件分别进行收缩,而不能尝试收缩整个数据库。

以上就是关于收缩数据库是什么意思全部的内容,包括:收缩数据库是什么意思、如何收缩sqlserver数据库、SQL数据库收缩的工作原理是什么(sql收缩数据库命令)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9528097.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存