我正在考虑在未来的项目中使用LocalDB,而不是OleDB (MDB)。
我需要不时地压缩数据库吗?如果是,那怎么做?
我发现了在SQL数据库(MDF,对不对?)情况下有一个Shrink选项,它可以定义自动收缩和修复。也许我不需要进行压缩(据我理解,这是创建新数据库并将实际内容复制到其中,从而删除所有过时的内容),但它已经足够启用收缩(这是一种选项,通过将垃圾移到数据库文件的末尾并截断文件,使服务器定期执行一种垃圾收集)。
同样有趣的是,收缩在文件系统碎片方面的效果如何(我猜不是很好)。
所有的我都希望有压缩,如何执行它的想法(代码),以及如何确定它是需要的(执行压缩的标准)。
我明白了,有backup命令,也许压缩会看起来是这样的: 1)备份2)重新创建数据库3)从备份恢复?
发布于 2014-04-03 07:37:34
LocalDB是,它是Server。一般的Server指南通常也适用于LocalDB,除非您有非常具体的情况。请注意,(包括LocalDB)对MDF文件大小有一个附加限制,在2012中为10 on。
有一点要记住的是,这种格式是为了快速而不是紧凑而设计的。例如,一个空数据库将创建一对MBs大的MDF文件。
如果您想尽可能地降低MDF的大小,那么autogrow和autoshrink似乎是管理MDF大小的最佳选择。在这篇KB 315512文章和这篇文章是保罗兰德尔写的,包括评论中的讨论。中讨论了与性能相关的权衡。
根据文件系统碎片-创建足够大的文件大小的数据库应该有帮助,因为操作系统应该能够在一次询问时更容易地找到大的、连续的磁盘空间块。当数据库文件增长和缩小时,它更有可能在文件系统级别被分割。我还找到了这个职位,讨论了使用工具“手动”对给定文件进行碎片整理。看上去很有希望,但我还没试过。
https://stackoverflow.com/questions/22788926
复制相似问题