小编Rob*_*Rob的帖子

SQL Server 2012 压缩整个表的列

我想知道 SQL Server 是否支持对整个表的一种字典压缩,而不仅仅是一个页面。

我正在开发的系统最初并不是为它今天处理的大量数据而创建的。我目前遇到的问题如下:

该应用程序允许用户创建法律合同。这些合同是标准化的,但允许用户根据需要调整合同的内容(文本)。

为方便起见,每份合同都会制作一份标准化合同文本的副本。实际上,我们发现用户几乎从不编辑合同文本,因此我们最终得到了一个包含大量重复数据的表格。

通常我会更改数据库模型以适应用例,但这是一个遗留系统,这样的更改非常昂贵。正在研究它的替代品,所以像这样的投资并不容易。

是否可以对整个表进行列字典压缩,而不仅仅是 1 页?

我们在内部部署的 SQL 集群中使用 SQL Server 2012。

问题是表大小为 80GB,整个 DB 大小为 180GB。这个表占用了很多空间,我们没有足够的内存,所以 SQL Server 不断卸载数据。

该表的数据用于生成代表合同的 PDF。每次用户修改合同状态时,都会生成一个新的 PDF 并存储用于审计目的,这会在此表上生成大量读取。

读取到磁盘(因为 SQL 服务器不断从内存中卸载表)。这给我们的 SAN 造成了巨大的 IO 压力。

正在解决内存问题,但这需要几周时间。现在可以说,简单地插入更多内存目前不是一种选择。

我的想法是:对于短期解决方案 - 压缩数据,这将大大减少表的大小,从而使 SQL Server 可以将表保存在内存中,从而减轻我们对 SAN 的 IO 压力。

sql-server compression sql-server-2012

5
推荐指数
1
解决办法
3902
查看次数

标签 统计

compression ×1

sql-server ×1

sql-server-2012 ×1