Heim > Datenbank > MySQL-Tutorial > SQLSERVER压缩数据文件的用处有多大

SQLSERVER压缩数据文件的用处有多大

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 15:45:01
Original
1276 Leute haben es durchsucht

SQLSERVER压缩数据文件的用处有多大 前奏: 前些天因为客户那边的问题(其实是盗版问题),只能使用免费的SQLSERVER EXPRESS版本 SQLSERVER2005 的express版本的SQLSERVER的整个数据库的数据文件大小限制为4GB(SQLSERVER2012 express版本限制是10G ),就是

SQLSERVER压缩数据文件的用处有多大

前奏:

前些天因为客户那边的问题(其实是盗版问题),只能使用免费的SQLSERVER EXPRESS版本

SQLSERVER2005 的express版本的SQLSERVER的整个数据库的数据文件大小限制为4GB(SQLSERVER2012express版本限制是10G),就是说不管你用多少个文件组,多少个辅助数据文件ndf

所有加起来都不能超过4GB(mdf+ndf)

事务日志文件大小没有限制

因为我们的数据库只是使用了一个主数据文件GPOS.mdf和一个事务日志文件GPOS.ldf

 

本人的解决思路:

本人在想如果是这样,到时候就收缩数据库呗

在网上查了一下资料:由于DBCC SHRINKDATABASE一次运行会同时影响所有的文件(包括数据文件和日志文件),使用者不能

指定每个文件的目标大小,其结果可能不能达到预期的要求。所以建议先做好规划,对每个文件确定预期目标,然后使用DBCC SHRINKFILE

来一个文件一个文件地做比较稳妥

本来很开心的,网上资料都说使用DBCC SHRINKFILE来收缩文件,那这样就不怕拉 (我不怕不怕拉~)

但是,往下看那个资料:

1、首先了解数据文件当前的使用情况

收缩量的大小不可能超过当前文件的空闲空间的大小。如果想要压缩数据库的大小,首先要确认数据文件里的确有相应未被使用的空间。如果空间都在

使用中,那就要确认大量占用空间的对象(表格或索引)。然后通过归档历史数据,先把空间释放出来

 

2、主数据文件(primary file)是不能被清空的。能被完全清空的只有辅助数据文件

 

3、如果要把一个文件组整个清空,要删除分配在这个文件组上的对象(表格或索引),或者把他们移到其他文件组上。
DBCC SHRINKFILE不会帮你做这个工作

把数据文件里面数据和对象清除完、确认数据文件(组)有足够的空闲空间后,管理员就可以使用DBCC SHRINKFILE来缩小或清空指定文件了。

如果要缩小文件,就填上需要的target_size,如果要清空文件,就选择EMPTYFILE

 

根据上面资料所说,本人的解决思路是:

1、确认大量占用空间的对象(表格或索引)。然后通过归档历史数据,先把空间释放出来再压缩数据文件

2、重建索引,把一些数据页面重排一次,原先的页面被释放,所占用的分区也被释放,再去DBCC SHRINKFILE

如果你们有其他解决方法希望你们告诉我,谢谢您们了!!

 

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage