我必须运行一个连接来自同一服务器上的两个SQL Server数据库的表的查询。它们使用不同的排序规则,唯一可用的连接键是20个字符的文本字符串。
所以我设置了这样的查询:
select *
from (subquery in DB1) s
inner join DB2.table on DB2.table.key COLLATE Finnish_Swedish_CI_AS = s.key
...some extra joins from DB2
...some conditions
...sort by DB2.table.key
第一个子查询非常重要。它本身需要大约10分钟才能运行。如果我在“key”字段中复制/粘贴结果以为查询的第二部分创建静态列表(实质上是分别查询每个数据库),它将在几秒钟内运行。但是当我运行组合查询时,它可以运行一个小时但仍然没有完成。
为什么会这样,有什么我可以做的来优化它?