当前位置:  开发笔记 > 数据库 > 正文

SQL Server CE中Shrink和Compact有什么区别?

如何解决《SQLServerCE中Shrink和Compact有什么区别?》经验,为你挑选了1个好方法。

我有一个定期运行的方法来优化我的应用程序的SQL Server Compact Edition(3.5)数据库.现有代码使用Shrink()方法:

        SqlCeEngine engine = new SqlCeEngine(dbConnectionString);
        engine.Shrink();

今天我注意到还有一个Compact()方法.哪个更适合定期维护?



1> Tim..:

从SQL Server Compact团队博客:

这两者之间的差异与内部和外部内存碎片非常相似.


从SqlCeEngine.Shrink文档,

通过将空的和未分配的页面移动到文件的末尾,然后截断文件,来回收数据库中浪费的空间.您可以通过在连接字符串中设置自动收缩阈值选项来将数据库配置为自动收缩.收缩不会创建临时数据库文件.

从SqlCeEngine.Compact文档,

通过从现有文件创建新数据库文件来回收数据库中浪费的空间.通过创建新的数据库手段,它可以回收行之间的可用空间.


为了更清楚,Shrink声称完全免费或未分配的页面; 其中,Compact也在页面中声称浪费了空间.因此,Compact需要创建一个新的数据库文件.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有