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