sqlserver如何压缩数据文件空间
发布时间:2025-05-21 12:04:39 发布人:远客网络
一、sqlserver如何压缩数据文件空间
1、在程序组中,展开“Sqlserver”运行“查询分析器”。输入用户名、密码。
2、在工具栏的数据库列表中选择要操作的数据库。
3、输入:select* from sysfiles执行,可以看到下面的内容,记住其中的fileid字段的内容,也就是1或2,标识数据库的数据文件或日志文件,下面的命令要用到这里的值。
4、输入:dbccshrinkdatabase('库名'),收缩数据库,结果如下:可以看到压缩后的数据库文件的尺寸。
5、输入:dbccshrinkfile(2,0)执行,然后输入dbccshrinkfile(1,0)执行。两句命令中的第一个参数就是前面看到的FileID的值,表示了一个是日志文件,一个是数据文件。第二个参数0,表示收缩到初始大小。
6、输入:dbcc updateusage(0),执行更新操作,完工!更新后可以跟之前的数据文件比对一下了,会有相对较大的尺寸上的优化了。
二、mssql数据库太大怎么压缩(数据库文件怎么压缩)
数据库在使用一段时间后,时常会出现因数据删除而造成数据库中空闲空间太多的情况,这时就需要减少分配给数据库文件和事务日志文件的磁盘空间,以免浪费磁盘空间。当数据库中没有数据时,可以修改数据库文件属性直接改变其占用空间,但当数据库中有数据时,这样做会破坏数据库中的数据,因此需要使用压缩的方式来缩减数据库空间。可以在数据库属性选项中选择“Autoshrink”选项,让系统自动压缩数据库,也可以用人工的方法来压缩。人工压缩数据库有以下两种方式:
1、用EnterpriseManager压缩数据库
在EnterpriseManager中在所要压缩的数据库上单击右键,从快捷菜单中的“所有任务(AllTasks)”中选择“ShrinkDatabase(压缩数据库)”选项
、用Transact-SQL命令压缩数据库
可以使用DBCC和DBCCSHRINKFILE命令来压缩数据库。其中DBCC命令对数据库进行压缩,DBCCSHRINKFILE命令对数据库中指定的文件进行压缩。
DBCC(database_name[,target_percent]
target_percent指定将数据库压缩后,未使用的空间占数据库大小的百分之几。如果指定的百分比过大,超过了压缩前未使用空间所占的比例,则数据库不会被压缩。并且压缩后的数据库不能比数据库初始设定的容量小。
将数据库缩减后剩余的空间保留在数据库,中不返还给操作系统。如果不选择此选项,则剩余的空间返还给操作系统。
将数据库缩减后剩余的空间返还给操作系统。使用此命令时SQLServer将文件缩减到最后一个文件分配,区域但不移动任何数据文件。选择此项后,target_percent选项就无效了。
压缩数据库mytest的未使用空间为数据库大小的20%。
DBCCexecutioncompleted.IfDBCCprintederrormessages,contactyoursystem.
DBCCSHRINKFILE命令压缩当前数据库中的文件。其语法如下:
DBCCSHRINKFILE({file_name|file_id}
指定要压缩的文件的鉴别号(number,即ID)。文件的ID号可以通过FILE_ID()函数或如本章前面所讲述的Sp_helpdb系统存储过程来得到。
指定文件压缩后的大小。以MB为单位。如果不指定此选项,SQLServer就会尽最大可能地缩减文件。
指明此文件不再使用,将移动所有在此文件中的数据到同一文件组中的其它文件中去。执行带此参数的命令后,此文件就可以用ALTERDATABASE命令来删除了。
其余参数NOTRUNCATE和与DBCC命令中的含义相同。
例6-15:压缩数据库mydb中的数据库文件mydb_data2的大小到1MB。usemydbdbshrinkfile(mydb_data2,1)
三、SQL Server 压缩日志及数据库文件大小
1、请按步骤进行未进行前面的步骤时请不要做后面的步骤以免损坏你的数据库
2、一般不建议做第两步第步不安全有可能损坏数据库或丢失数据第步如果日志达到上限则以后的数据库处理会失败在清理日志后才能恢复
3、 DUMP TRANSACTION库名 WITH NO_LOG
4、 BACKUP LOG数据库名 WITH NO_LOG
5、收缩数据库文件(如果不压缩数据库的文件不会减小
6、企业管理器右键你要压缩的数据库所有任务收缩数据库收缩文件
7、选择日志文件在收缩方式里选择收缩至XXM这里会给出一个允许收缩到的最小M数直接输入这个数确定就可以了
8、选择数据文件在收缩方式里选择收缩至XXM这里会给出一个允许收缩到的最小M数直接输入这个数确定就可以了
9、 DBCC SHRINKDATABASE(客户资料)
10、收缩指定数据文件是文件号可以通过这个语句查询到:
11、为了最大化的缩小日志文件(如果是sql这步只能在查询分析器中进行)
12、企业管理器服务器数据库右键分离数据库
13、企业管理器服务器数据库右键附加数据库
14、下面的示例分离 pubs然后将 pubs中的一个文件附加到当前服务器
15、 EXEC sp_detach_db@dbname= pubs
16、 EXEC sp_attach_single_file_db@dbname= pubs
17、@physname= c:/Program Files/Microsoft
18、 SQL Server/MSSQL/Data/pubs mdf
19、企业管理器服务器右键数据库属性选项选择自动收缩
20、如果想以后不让它日志增长得太大
21、企业管理器服务器右键数据库属性事务日志
22、将文件增长限制为xM(x是你允许的最大数据文件大小)