根据年份进行视图更改而不会影响性能

时间:2014-04-15 19:41:19

标签: sql performance tsql view

我有一个观察最近四年的观点。它有18个子查询非常复杂。当年份被硬编码到声明中时,它会快速运行,但我宁愿将其视为基于年份(学年,实际上)的变化。

我写了一个函数,它抓住了正确的年份(不是当前年份)并取代了硬编码年份,它从<30秒变为超过我等待的时间。我也尝试过选择正确的年份,但仍未完成。然后,我尝试制作包含当年表格的CTE,但仍未完成。

我觉得,如果在视图中允许变量,我可以将年份存储在变量中并将硬编码日期更改为(或@var - 1等等)并且不会影响性能。有没有办法在没有大量执行时间增加的情况下使用视图?或者我需要将其切换到存储过程吗?

我还没有完成大量的SQL,所以我仍然想知道我是否在这里遗漏了一些东西。我不知道这会导致如此巨大的性能变化。

感谢。

0 个答案:

没有答案