收缩数据库 收缩数据库是什么意思
其实收缩数据库的问题并不复杂,但是又很多的朋友都不太了解收缩数据库是什么意思,因此呢,今天小编就来为大家分享收缩数据库的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
怎样在SQL Server 2000中收缩数据库
操作步骤如下:
(1)打开SQL Server企业管理器。双击打开“数据库”节点,在要收缩的数据库名称上,单击鼠标右键,在弹出的快捷菜单中选择“所有任务”→“收缩数据库”命令,弹出“收缩数据库”对话框,如图1所示。
图1收缩数据库
(2)指定数据库的收缩量,可以从以下选项中选择。
在“收缩后文件中的最大可用空间”文本框中输入收缩后数据库中剩余的可用空间量。以“数据库大小,可用空间”值作为依据。如最大可用空间是“25%”,则在该选项中设置小于该数值的百分比,如“12%”。
选择“在收缩前将页移到文件起始位置”复选框,使释放的文件空间保留在数据库文件中,并使包含数据的页移到数据库文件的起始位置。
(3)在“调度”选项框中,选择是否自动定期执行数据库压缩操作。选中“根据本调度来收缩数据库”复选框,单击“更改”按钮,创建或更改自动收缩数据库的频率和时间。
(4)最后单击“确定”按钮完成操作。
收缩数据库有什么作用
收缩数据库
数据库中的每个文件都可以通过删除未使用的页的方法来减小。尽管数据库引擎会有效地重新使用空间,但某个文件多次出现无需原来大小的情况后,收缩文件就变得很有必要了。数据和事务日志文件都可以减小(收缩)。可以成组或单独地手动收缩数据库文件,也可以设置数据库,使其按照指定的间隔自动收缩。
文件始终从末尾开始收缩。例如,如果有个 5 GB的文件,并且在 DBCC SHRINKFILE语句中将 target_size指定为 4 GB,则数据库引擎将从文件的最后一个 1 GB开始释放尽可能多的空间。如果文件中被释放的部分包含使用过的页,则数据库引擎先将这些页重新放置到文件的保留部分。只能将数据库收缩到没有剩余的可用空间为止。例如,如果某个 5 GB的数据库有 4 GB的数据,并且在 DBCC SHRINKFILE语句中将 target_size指定为 3 GB,则只能释放 1 GB。
自动数据库收缩
将 AUTO_SHRINK数据库选项设置为 ON后,数据库引擎将自动收缩具有可用空间的数据库。此选项可以使用 ALTER DATABASE语句来进行设置。默认情况下,此选项设置为 OFF。数据库引擎会定期检查每个数据库的空间使用情况。如果某个数据库的 AUTO_SHRINK选项设置为 ON,则数据库引擎将减少数据库中文件的大小。该活动在后台进行,并且不影响数据库内的用户活动。
将数据库设置为自动收缩
ALTER DATABASE(Transact-SQL)
手动数据库收缩
您可以使用 DBCC SHRINKDATABASE语句或 DBCC SHRINKFILE语句来手动收缩数据库或数据库中的文件。如果 DBCC SHRINKDATABASE或 DBCC SHRINKFILE语句无法回收日志文件中的所有指定空间,则该语句将发出信息性消息,指明必须执行什么操作以便释放更多空间。有关收缩日志文件的详细信息,请参阅收缩事务日志。
在该过程中任意时间都可停止 DBCC SHRINKDATABASE和 DBCC SHRINKFILE操作,所有已完成工作都将保留。
在使用 DBCC SHRINKDATABASE语句时,您无法将整个数据库收缩得比其初始大小更小。因此,如果数据库创建时的大小为 10 MB,后来增长到 100 MB,则该数据库最小只能收缩到 10 MB,即使已经删除数据库的所有数据也是如此。
但是,使用 DBCC SHRINKFILE语句时,可以将各个数据库文件收缩得比其初始大小更小。必须对每个文件分别进行收缩,而不能尝试收缩整个数据库。
收缩数据库是什么意思
收缩数据库就是把数据库不需要或者没有用的东西进行资源回收,简单的说就是数据库压缩,比如你数据库的很大,你收缩下数据库就不会有那么大了,还有一个办法就是删除数据库日志,具体代码:
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\MSSQL.1\MSSQL\Data\数据库名.mdf'
sql数据库的收缩命令是什么
1.清空日志 DUMP TRANSACTION库名 WITH NO_LOG 2.截断事务日志: BACKUP LOG数据库名 WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成--收缩数据库 DBCC SHRINKDATABASE(客户资料)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select* from sysfiles DBCC SHRINKFILE(1)4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行) a.分离数据库:企业管理器--服务器--数据库--右键--分离数据库 b.在我的电脑中删除LOG文件 c.附加数据库:企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码:下面的示例分离 pubs,然后将 pubs中的一个文件附加到当前服务器。 a.分离 E X E C sp_detach_db@dbname='pubs' b.删除日志文件 c.再附加 E X E C sp_attach_single_file_db@dbname='pubs',@physname='c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'5.为了以后能自动收缩,做如下设置:企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"--SQL语句设置方式: E X E C sp_dboption'数据库名','autoshrink','TRUE'6.如果想以后不让它日志增长得太大企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式: alter database数据库名 modify file(name=逻辑文件名,maxsize=20)特别注意:请按步骤进行,未进行前面的步骤,请不要做后面的步骤否则可能损坏你的数据库.一般不建议做第4,6两步第4步不安全,有可能损坏数据库或丢失数据第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.另外提供一种更简单的方法,本人屡试不爽,建议大家使用。更简单的方法: 1。右建数据库属性窗口--故障还原模型--设为简单 2。右建数据库所有任务--收缩数据库 3。右建数据库属性窗口--故障还原模型--设为大容量日志记录
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!