【问题标题】:What is the cost in bytes for the overhead of a sql_variant column in SQL Server?SQL Server 中 sql_variant 列开销的字节成本是多少?
【发布时间】:2011-02-27 11:31:53
【问题描述】:

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

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

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

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

谢谢,伊兰

【问题讨论】:

  • 更新 o 2008 R2 并且您的大小限制变为 10gb ;)

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


【解决方案1】:

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

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

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

【讨论】:

  • 同意,sql_variant 不会节省任何空间。看到了 SQL Server 2008 R2 的新限制。谢谢!
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2010-10-08
    • 1970-01-01
    • 2011-10-09
    • 2015-09-18
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    相关资源
    最近更新 更多