SQL Server中sql_variant列开销的字节成本是多少?

问题描述:

我有一个表,其中包含许多列浮点数据类型与15位精度。每列消耗8个字节的存储空间。大多数情况下,数据不需要这么高的精度,并且可以存储为真正的数据类型。在许多情况下,该值可以是0,在这种情况下,我可以放弃存储单个字节。SQL Server中sql_variant列开销的字节成本是多少?

我的目标是优化空间存储需求,这是我正面临的一个与SQL Express 4GB数据库大小限制相关的问题。

如果byte,real和float数据类型存储在sql_variant列中,存储这些值显然会涉及一些开销。这种开销的成本是多少?

然后,我需要评估是否实际上最终将显着节省空间(或不是)切换到使用sql_variant列数据类型。

感谢,义隆

+1

更新Ø2008 R2和你的大小限制变为10GB) – TomTom 2010-06-06 13:52:15

我发现如下因素文章中对存储的成本脱落光非常有用,因为只要SQL_VARIANT而言:

http://msdn.microsoft.com/en-us/library/ms178085.aspx

使用SQL_VARIANT你不会节省空间,你会简单介绍复杂

的整体水平的每一列必须具有正确的数据类型来存储这个领域的所有可能的值。你需要全面浮动吗?你可以使用tinyint吗? etc等

如果你担心4GB的限制,然后升级到新的Express版本(10GB)或向上移动版本。

+0

同意, sql_variant不会保存任何空间。查看SQL Server 2008 R2的新限制。谢谢! – Elan 2010-06-23 02:24:46