【问题标题】:SQL Server Performance New Table vs New ColumnsSQL Server 性能新表与新列
【发布时间】:2023-04-09 17:07:02
【问题描述】:

我们的数据库非常复杂,其中包含许多包含数十亿数据的表,我们将重新设计此数据库以提高数据库性能。

我们将删除一些表并将这些数据与现有表合并,并在现有相关表中添加 6-7 个新列。这对我们提高性能有帮助吗??

【问题讨论】:

  • 没有足够的信息来回答这个问题。什么是 6-7 列,为什么您认为添加它们会有所帮助?正在合并/删除的数据是什么?当前的性能问题是什么?什么是索引策略?哪些查询表现不佳?基本上,您问的问题比“这有助于我们提高性能吗?”要复杂得多。问题
  • 我们有一个 SP,我们调用了大约 20 多个表,当我们执行查询时大约需要 30 秒。为了克服以上 20 多个表中的这个问题,我们将通过在当前表中添加额外的列来减少大约 8-10 个表。在一个表中,我们有大约 10 列,通过向相关表添加 3-4 个额外的列,我们可以删除平均 2-4 个表。通过删除这些表并向相关表添加额外的列,我们将获得更高的性能??
  • 这仍然取决于很多事情。主要是索引策略,还有当前查询 - 即它是否是一个连接等。坦率地说,你最好的选择是在你的测试环境中尝试它,看看它是如何表现的
  • 如果你必须在这里问这样的问题,那么答案是“NO”,无论你想做什么都会非常非常可能 NOT 有你想要的结果。如果您有“具有许多包含数十亿数据的表的复杂数据库”,那么您需要找到知道自己在做什么的人。这个主题至少和你的数据库一样复杂,公共论坛上的三句话问题不会产生你需要的深度方向和洞察力。付钱找个好人。

标签: .net sql sql-server sql-server-2008 sql-server-2012


【解决方案1】:

如果它减少了查询中的连接,那么它总是更好。如果您正在处理大量数据,那么反规范化是提高性能的选项之一。您可以通过下面的链接更好地理解。 http://technet.microsoft.com/en-us/library/cc505841.aspx

【讨论】:

    【解决方案2】:

    新列比一对一关系的新表要好,因为新列中的数据库大小比在两个表之间创建关系和占用系统资源要小得多。

    【讨论】:

      【解决方案3】:

      您可以使用索引来提高性能。

      如果您使用这些表进行报告,最好使用索引键。

      【讨论】:

      • 欢迎来到 SE,阿米尔。这个社区通常欢迎您的帮助和能力。但是,请注意,专业报价通常不受欢迎。您在这里提供的帮助是免费提供的,而且是出于慷慨。 (虽然将您的 SO-Profile 与您的公司联系起来,反之亦然)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-14
      • 1970-01-01
      • 2019-07-09
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      相关资源
      最近更新 更多