1

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

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

该表更新非常频繁,大约每秒 100 次,并且INSERT查询中指定的所有列的语句变得相当大。

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

4

2 回答 2

2

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

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

于 2012-10-17T20:05:59.547 回答
1

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

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

于 2012-10-17T16:11:56.787 回答