我有一个函数,可以在具有两个 case 语句的视图上运行。问题是,由于这个 case 语句,运行函数需要 25+ 秒。 因为它应该只需要 ~3 秒(与具有不调用 case 语句的视图的相同函数相比。
案例语句在选择中完成。
有趣的是(对我来说(,如果我将其中一个案例陈述更改为直接的东西,即 D.CARS 而不是
CASE WHEN D.CAR IS NOT NULL
THEN D.CAR
ELSE C.CAR
END AS CAR,
然后它加速到 ~3 秒来运行该函数,但显示一些关闭结果。 因此,如果 select 语句中有两个 CASE 语句,则似乎只需要~25 秒。
无论大小写语句的数量如何,填充视图的时间都不少于 1 秒。
有没有办法在获得正确结果的同时加快速度?
为什么不使用COALESCE
而不是CASE
表达式?
COALESCE(D.CAR, C.CAR) AS CAR
您是否尝试过使用函数而不是 case 语句?