我有一个表格查询:
SELECT akey, avalue, expensiveop(akey) FROM atable WHERE avalue < SOME_CONSTANT;
看起来昂贵的op()——这是一个用户定义的函数,需要相当长的时间来执行——被表中的所有行调用。出于性能原因,我只希望它对结果集中的每一行执行一次。
我尝试了以下方法,但似乎没有什么不同:
SELECT akey, avalue, expensiveop(akey) FROM (SELECT * FROM atable WHERE avalue < SOME_CONSTANT)
有任何想法吗?