SQL Server 2008数据压缩

在我的OLTP数据库服务器主要的性能瓶颈是I / O.如果我压缩我的数据库,根据我的计算,我将有60%的压缩。内存中的页面也有压缩的数据,更多的数据可以在内存中,减lessI / O在很大程度上。在这种情况下,我会从less得多的I / O中获得显着的性能好处吗?

这是一个资源有限(没有足够的磁盘I / O)的问题,禁止消耗另一个资源(CPU时间)。 最好的办法是增加更多的磁盘I / O,这样可以利用你所有的服务器性能潜力。

如果这不可行或您需要,那么我认为您应该启用压缩。 你将基本上放弃一个'免费'资源(CPU时间,你有太多),以获得更多的限制资源(磁盘I / O)。 上面写着“处理器很less超过80%”; 我认为这意味着你大部分时间有20%到40%的空闲CPU。 启用压缩应该适用于此服务器。

内存中的页面也有压缩的数据,可以在内存中存储更多的数据,很大程度上减less了I / O。

Mnn,这是正确的,但也许性能影响不会像你所希望的那么大。 这将取决于您的caching数据集和您的“工作数据集”,之间和之后的压缩比例。

请注意,有2个级别的压缩可供您使用 。 也许只是启用行压缩将是一个黄金妥协给你..?

如果你的数据很容易被压缩(例如文本字段中的类似文本等),并且假设你有很多的内存(为了不打开文件),我可以肯定地说事情变得更快。

硬盘是非常慢的组件,所以任何事情,以避免它有帮助。

PS此function使用了相当多的处理器,因此如果您的处理器使用率已经很高,请考虑这一点。

您也可以select压缩聚集索引,而不是每个索引。 这会给你一个较less的cpu intence index seek,但是当你实际从聚集索引中获得数据页时,你应该获得IO性能。

作为我们迁移到SQL 2008的第一步,我们在聚簇索引上激活了页面压缩,以查看我们使用了多lessCPU。 我们获得了大约20%的速度,仍然有大量的CPU资源(我们使用的是4 x四核处理器服务器),所以在下一个版本中,我们也会压缩所有其他指标。

很难预测您将从多less次性能调整中受益,而且解决scheme始终是testing,testing和更多testing。