谁能解释这种行为或如何解决它?
如果执行此查询:
select *
from TblA
left join freetexttable ( TblB, *, 'query' ) on TblA.ID = [Key]
inner join DifferentDbCatalog.dbo.TblC on TblA.ID = TblC.TblAID
这将非常非常非常慢。
如果您将该查询更改为使用两个内连接而不是左连接,它将非常快。如果您将其更改为使用两个左连接而不是内连接,它将非常快。
如果您也使用 sql 表变量而不是 freetexttable,则可以观察到相同的行为。
每当您有一个表变量(或 freetexttable)和一个位于不同数据库目录中的表时,性能问题就会出现,其中一个在内部联接中,另一个在左联接中。
有谁知道为什么这很慢,或者如何加快速度?