【问题标题】:Should I Replace Multiple Float Columns with a BLOB?我应该用 BLOB 替换多个浮点列吗?
【发布时间】:2012-10-07 22:37:48
【问题描述】:

SQL Server 中的单个 BLOB 列(在性能方面)与大约 20 个 REAL 列(20 x 32 位浮点数)相比如何?

我记得 Martin Fowler 建议使用 BLOB 来持久化大型对象图(在企业应用程序架构模式中)以删除查询中的多个连接,但是对于具有 20 个固定列(它们是从未在查询中使用过)?

此表更新频率很高,大约每秒 100 次,INSERT 语句在查询中指定的所有列中变得相当大。

我认为第一个答案是“自己分析”,但我想知道是否有人已经有这方面的经验。

【问题讨论】:

    标签: sql-server performance blob insert-into poeaa


    【解决方案1】:

    我不能完全谈论SELECT 的性能,您需要对其进行测试,但我非常怀疑它会在那里导致任何性能问题,因为您不会读取比以前更多的数据。但是,关于INSERT,您应该会看到性能提升(我不确定大小),因为可能没有任何统计索引要更新。当然,这取决于很多的设置,但我只是把我的意见扔在那里。这个问题非常主观,没有足够的信息可以真正告诉您是否会看到围绕更改的性能问题。

    现在,在实践中,我要说的是,除非您遇到真正的性能问题,否则不要这样做。此外,如果您发现真正的性能问题,请在选择此类解决方案之前对其进行分析,可能还有其他方法可以解决这些问题。

    【讨论】:

      【解决方案2】:

      如果您没有发现这对于满足您的性能要求至关重要,通常您不应该这样做。

      如果您将其存储在一个 blob 中,如果您对对象结构进行任何更改(例如添加或删除一列),则需要重新计算整个数据库。如果您保留多个列,那么您未来的数据库重构和部署会容易得多。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多