为什么将此行添加到Select会大幅减慢SQL?

时间:2015-06-30 20:22:54

标签: oracle11g

我有一个相当复杂的查询,它使用了一堆表。返回所有记录通常需要大约17秒(尽管通常会被过滤)。它返回的一个字段是CAT.OLD_CODE。当我用NVL(CAT.OLD_CODE,(CASE WHEN ISS.WHDEF_CODE = 'SCRAP' THEN 'SCRAP' ELSE 'QH/PH/CUST' END))替换该字段时,查询将永远存在(我还没有让sql开发人员长时间运行它以获得前50行)。 ISS.WHDEF_CODE已经在select语句中,并且CATISS都外部连接到查询的主体。我在水晶报告中使用该命令,目前正在那里进行过滤,但我只是好奇为什么CASE语句需要这么长时间(仅使用NVL没有明显的意义对业绩的影响)。我之前在select语句中使用字符串操作时已经注意到了这一点,但这似乎只是一个简单的比较。

0 个答案:

没有答案