【发布时间】:2012-08-03 02:57:36
【问题描述】:
我有一个函数可以使用两个 case 语句在视图之外工作。 问题是由于这个 case 语句,运行该函数需要 25 秒以上。因为它应该只需要大约 3 秒(与具有不调用 case 语句的视图的相同函数相比。)
case 语句在 select 中完成。
有趣的是(对我来说),如果我将其中一个案例语句更改为直接的内容,即 D.CARS 而不是
CASE WHEN D.CAR IS NOT NULL
THEN D.CAR
ELSE C.CAR
END AS CAR,
然后它会加快运行该函数的速度约 3 秒,但会显示一些关闭的结果。因此,如果 select 语句中有两个 case 语句,似乎只需要 25 秒。
无论案例语句的数量如何,视图的填充时间都不会少于 1 秒。
有没有办法在加快速度的同时仍然获得正确的结果?
【问题讨论】:
-
您是否尝试过将计算列添加到视图而不是调用函数?
标签: sql-server-2005 function view case