SQL Server中sql_variant列开销的成本(以字节为单位)是多少?

时间:2010-06-03 19:12:40

标签: sql-server sql-server-2005 floating-point overhead sql-variant

我有一个表,其中包含许多具有15位精度的浮点数据类型列。每列占用8个字节的存储空间。大多数情况下,数据不需要这么高的精度,可以存储为实际数据类型。在许多情况下,该值可以为0,在这种情况下,我可以避免存储单个字节。

我的目标是优化空间存储要求,这是我面临使用SQL Express 4GB数据库大小限制的问题。

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

然后我需要评估一下我是否真的会节省大量空间(或不用)转换为使用sql_variant列数据类型。

谢谢,Elan

2 个答案:

答案 0 :(得分:1)

您不会使用sql_variant节省空间,而只需引入整个复杂程度

每列应具有正确的数据类型,以在此字段中存储所有可能的值。你需要全面浮动吗?你能用tinyint吗?等等

如果您担心4GB限制,请升级到新的Express版本(10GB)或升级版本。

答案 1 :(得分:1)

我发现,就sql_variant而言,以下文章对于揭示存储成本非常有用:

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