sql-server - 有数百个的主表 vs 几个更小的表

标签 sql-server database performance database-design

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

我目前有一个大表(每行 97 列),其中包含对查找表的引用。

将一些列分组到更小的表中并添加它们的键列以引用一整行对性能来说不是更好吗?

最佳答案

如果您将表格拆分成几个部分,您将需要额外的联接才能将所有列都放在一行中 - 这会浪费您的时间。

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

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

如果:

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

  • 您可以将一些并非总是存在的列移到单独的表格中,例如可能是“可选的”并且仅存在于例如20% 的行 - 在这种情况下,您可以为其余 80% 的不需要这些列的情况节省一些处理时间。

关于sql-server - 有数百个的主表 vs 几个更小的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10936697/

相关文章:

sql-server - TSQL STATS_STREAM(未记录的功能)的格式是什么?它包含所有统计数据吗?

ios - 自定义 API 移动服务 Azure IOS

database - Oracle 数据库表行数

c - 非常数除数的矢量化整数除法最快方法

performance - 在 3 个数组中搜索公共(public)数的复杂性

sql返回嵌套结果集?

sql - 优化查询(删除子查询)

mysql - 创建表、查询和表之间的关系

php - 获取两个日期之间的日期列表并将数据插入数据库

wpf - 如何加速WPF程序?