以下是我要优化的查询,这里优化的瓶颈是 CONDITION_B。
select @COMPUTE_X = count(distinct TABLEA.COLUMN_T5)
from #TMP_TABLEA TABLEA
inner join TABLEB on TABLEB.ID = TABLEA.ID
left join....
where
(
CONDITION_A --Complex condition
) and
(
CONDITION_B --Complex condition with some functions returning table
)
如果我将上述查询的结果留下 CONDITION_B 到一个临时表,然后在该临时表上应用 CONDITION_B,我会获得非常好的性能提升。我认为 CONDITION_B 总是评估 CONDITION_A 的结果是否为假。
任何人都可以让我知道是否有更好的方法。并且短路操作是否在 SQL 查询语句中起作用,如果是,它们的处理顺序是什么。