TSQL VARCHAR压缩

TSQL VARCHAR压缩,tsql,compression,Tsql,Compression,是否有为TSQL编写的huffman或zip压缩dll?我已经找过了,似乎找不到。我想将压缩数据存储在一个字段中,并使用计算字段显示未压缩的数据。TSQL中没有内置函数,但您可以编写自己的dll,该dll由C#或VB.net编写,名为SQLCLR,并将其添加到sql中。 现在您可以使用此功能。您可以在CLR中执行此操作,但我不确定您为什么要这样做。如果是压缩数据,则可能必须将其存储为varbinary,以缩小100gb的表。最大的字段是文本字段,我们从不搜索它。我还看到TableProperti

是否有为TSQL编写的huffman或zip压缩dll?我已经找过了,似乎找不到。我想将压缩数据存储在一个字段中,并使用计算字段显示未压缩的数据。

TSQL中没有内置函数,但您可以编写自己的dll,该dll由C#或VB.net编写,名为SQLCLR,并将其添加到sql中。
现在您可以使用此功能。

您可以在CLR中执行此操作,但我不确定您为什么要这样做。如果是压缩数据,则可能必须将其存储为
varbinary
,以缩小100gb的表。最大的字段是文本字段,我们从不搜索它。我还看到TableProperties选项卡声称有16亿行,但COUNT(*)只返回1.5亿行。所以这个表可能只有10gb。但是,我们希望每天将数据输入量增加5倍,因此在我了解行数问题的底部之后,我仍然希望进行压缩。在这种情况下,您可以根据您的版本在SQL Server中使用表级或行级压缩,或者您可以将该列移动到另一个表并建立1:1关系。我查看了表或行级别的压缩,他们几乎都说不压缩varchar字段。我可以看到将文本放在一个文本字段中,该字段基本上存储在另一个表中。这将加快我们在表上的搜索速度,因为我们搜索的数据将更局部,更小。不过压缩文本会很好。首先需要计算出计数的差异。我有一个表,它只是一个int-PK和一个大文本。计数(*)和属性选项卡都返回1391712。如果对其他字段进行索引,也会得到更局部、更小的数据。如果您不想索引所有其他搜索字段,那么即使是2:1压缩也不会有多大帮助。注意安全,将文本放在单独的表格中。即使你压缩它,我也会把它放在一张单独的桌子上。