主表与数百vs较小

Adr*_* K. 5 database sql-server performance database-design

我想知道哪种方法更适合设计数据库?

我目前有一个大表(每行97列),我可以参考查找表.

将某些列分组到较小的表中并将它们添加到用于引用整行的键列不是更好吗?

mar*_*c_s 3

如果您将表分成几个部分,则需要额外的联接来获取单行的所有列 - 这会花费您的时间。

97 列并不算多,真的 - 我见过的远远超过 100 列。

这完全取决于您的数据的使用方式 - 如果您的行始终只有 97 列,并且需要 97 列 - 那么将它们拆分到不同的表中实际上几乎没有意义。

如果满足以下条件,这可能是有意义的:

  • 您可以将一些“大”列(例如 等)移动XMLVARCHAR(MAX)一个单独的表中,如果您并不总是需要这些列 -> 在这种情况下,您的“基本”行会变得更小,并且您的基本表会表现得更好 -只要你不需要那些超大的柱子

  • 您可以将某些列移至并不总是存在的单独表中,例如可能是“可选”的列,并且仅在 20% 的行中出现 - 在这种情况下,您可能会为剩余的 80 行节省一些处理不需要这些列的情况的百分比。