【问题标题】:Join query in multiple database在多个数据库中加入查询
【发布时间】:2012-09-03 11:04:06
【问题描述】:

我有一个包含数百万条记录的数据库,由于某些问题,我们计划将一些特定的表放入不同的(新)数据库中。

如果我将表放入不同的数据库(在同一台服务器上)并在当前数据库和新数据库之间应用连接,是否会影响性能(与数据库中的连接相比)?

【问题讨论】:

  • 也许dba.stackexchange.com 可能更适合回答这个问题。
  • 为什么不自己在这样的场景下做一些性能测试呢?

标签: sql sql-server performance sql-server-2008 join


【解决方案1】:

IIRC 的原始性能没有什么不同,除了查询优化器一次只适用于一个数据库中的一个表。所以你的查询变成了两个优化的查询,在后面的步骤中数据库之间的连接。这在某些情况下可能会导致高度未优化的查询,而在其他情况下则没有区别

只需要一个 SSD 就可以了

【讨论】:

  • 能否请您提供任何链接,让我可以阅读更多关于查询优化器在多个数据库查询上的工作的信息。
  • 只需通过查询分析器运行您的查询,看看会发生什么。无论哪种方式,一个像样的 SSD 在修复性能问题时更便宜、更快!
【解决方案2】:

不是真的,不会对性能造成影响。但是在 sql server 2008 中,您可以使用文件组来实现与您尝试通过分离表来实现相同的目标。您还可以将它们放在不同的磁盘上,这样有助于提高性能。

【讨论】:

    【解决方案3】:

    假设所有其他条件都相同,那么我不认为多个数据库与单个数据库之间的 JOIN 本身不会导致性能损失。

    但是,您的提案提出了太多变数和问题。你在做任何标准化吗?新表将如何被索引?外键?这是一个高事务服务器/数据库吗?之前和之后如何设置您的物理文件?磁盘 I/O、事务日志等都可能是一个因素。

    【讨论】:

    • 第一句包含双重否定,我这样认为有误吗?此外,“不相信”并不是一个很好的答案——你知道吗?你做过比较吗?
    猜你喜欢
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 2017-11-15
    • 2013-06-23
    • 1970-01-01
    • 2022-01-07
    相关资源
    最近更新 更多