いくつかのテーブルを結合するクエリがあり、このような where 句で演算=
子の代わりに演算子を使用すると、パフォーマンスが大幅に向上します。in
=
オペレーターは 1 秒もかかりません。in
オペレーターは約 1 分かかります。
where P.GID in ( SELECT GID from [dbo].[fn_SomeFunction] (15268) )
ほとんどの場合、サブクエリは 1 つの結果を返します。この変更だけで、ほとんどの場合は改善されますが、他の場合にはエラーが発生します。
この動作の理由は何ですか?