在多个数据库中加入查询

时间:2012-09-10 14:45:50

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

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

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

3 个答案:

答案 0 :(得分:1)

IIRC除了查询优化器之外,原始性能没有区别,一次只能在一个数据库中为一个表工作。因此,您的查询将成为两个优化的查询,后面的步骤中的数据库之间的连接。在某些情况下,这可能会导致高度未优化的查询,在其他情况下无差异

刚拿到SSD而忘了它

答案 1 :(得分:0)

不是真的,没有性能影响。但是使用sql server 2008,您可以使用通过分离表来实现与尝试实现相同的文件组。您也可以将它们放在不同的磁盘上,以便在性能方面有所帮助。

答案 2 :(得分:0)

假设所有其他事情都是平等的,那么我不相信mutliple数据库与单个数据库之间的JOIN本身不会导致性能损失。

但是,您的提案引发的变量和问题太多了。你在做任何正常化吗?如何将新表编入索引?外键?这是一个高事务性的服务器/数据库吗?您之前的物理文件是如何设置的?后?磁盘I / O,事务记录等等都可能起到一定的作用。