誰かがこの動作またはそれを回避する方法を説明できますか?
このクエリを実行すると:
select *
from TblA
left join freetexttable ( TblB, *, 'query' ) on TblA.ID = [Key]
inner join DifferentDbCatalog.dbo.TblC on TblA.ID = TblC.TblAID
非常に非常に遅くなります。
そのクエリを左結合の代わりに 2 つの内部結合を使用するように変更すると、非常に高速になります。内部結合の代わりに 2 つの左結合を使用するように変更すると、非常に高速になります。
freetexttable の代わりに SQL テーブル変数を使用すると、これと同じ動作を確認できます。
テーブル変数 (または freetexttable) とテーブルが別のデータベース カタログにあり、一方が内部結合にあり、もう一方が左結合にある場合は常に、パフォーマンスの問題が発生します。
なぜこれが遅いのか、またはそれを高速化する方法を知っている人はいますか?