主表与11个常量列vs主表与单独的常量表

时间:2013-04-22 15:25:41

标签: sql-server-2012

我有一个数据库表(称为Master),它有大约40列。其中11个总是包含大约每100,000行的常量值。

这种结构的缺点是,当我需要更新这11个列值时,我需要更新所有100.000行。

我可以将所有常量数据移动到另一个表中,并在一个地方只更新一次,而不是100.000个地方。

但是,如果我这样做,当我显示字段时,我需要在两个表之间创建INNER JOIN,我知道这会使SELECT语句变慢。

我必须说更新列比读取(显示)数据更少。

您如何建议我将数据存储在数据库中以获得最佳性能?

由于

1 个答案:

答案 0 :(得分:0)

我会将11列放在一个单独的表中

您正在使用11个额外的静态值使主表膨胀:这会影响密度(每8k页的行数)和查询的内存占用量。

也就是说,如果拆分静态数据,只需简单地读取和处理主表的数据