0

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

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

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

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

谢谢, 艾伦

4

2 回答 2

1

使用 sql_variant 不会节省空间,只会引入整个复杂性级别

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

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

于 2010-06-06T13:47:33.997 回答
1

就 sql_variant 而言,我发现以下文章在阐明存储成本方面非常有用:

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

于 2010-06-23T02:23:38.797 回答