如果您不在连接中使用它们,表格中的列数会影响性能吗?

时间:2015-12-09 15:38:53

标签: sql sql-server

我有一个包含49列的表格,我需要再添加两列。我可以使用这些新列添加另一个与该表相关的表,以避免使表变大和变大。

但是我想知道如果它们没有在连接中使用,那么在该表中有多列的性能会有多大影响?

如果A有4列,那么表A与表B的连接是否真的存在差异?如果你只使用其中的3列,那么它是100吗?

此外,该表并不是人口密集,它甚至没有500行但是想知道,因为DBA并不喜欢它只是为了理解他的观点。

感谢。

编辑:

我将编辑解释我在此表中唯一的工作是向表中当前包含的现有49添加2列,并且它们将是位列。这就是为什么我想知道增加列大小是否会影响性能,假设他们在加入该表时从不做select *。

3 个答案:

答案 0 :(得分:0)

我认为最好的答案是:这些新列在大部分时间都是空的吗?

  • 是:也许您可以将这些列添加到主表中。如果您在大多数情况下需要它们,请在此表中选择行。
  • 否:创建新表并加入。每行的空列是无用的磁盘空间。

注意:无论如何,50列似乎很可怕......

答案 1 :(得分:0)

将这两列添加到表中不会显着影响性能,特别是因为表存储的行少于500行。说,你的DBA不喜欢这样,因为它不遵循表设计的最佳实践,特别是如果许多列值为NULL /空并且这种设计不能很好地扩展。但是,除非您预计此表的大小会迅速增加,否则添加两列不会造成性能问题。

答案 2 :(得分:0)

如果您添加另一个表,那么我假设您必须使用联接才能正确访问该数据。实际上,这可能会导致比单个表中添加的两个新属性更多的成本。

如果您的表格可以重构,那么这将是最好的选择,但如果没有,那么您只会通过尝试这样做而失去效率。不要仅仅为了保持在50个属性之下的第二个表。无论如何,添加到49的两列不会是不可行的负载,但可能还有其他原因需要重新设计您的表。如果你有一堆空单元格或空单元格,那么你就是在浪费资源并给你的系统做更多的工作,找到一种消除这些的方法无疑会比添加一两列有更大的影响