查询日期范围内每个日期的某些数据的最有效方法是什么

问题描述

我有一个要求,即有一个内联表值sql函数,该函数接受日期作为参数并返回结果集。 现在,我必须获取日期范围内每个日期的结果集。

函数的单次执行大约需要2-3分钟,因此,如果我们已将该函数运行了一个月,则大约需要1个小时才能完成执行。

所以我正在寻找一些创新的方法来对此进行优化。

我尝试创建一个包含所有日期的并集所有查询,希望可以实现并行执行。

select 
    dateValue,col1,col2,col3
from dbo.GetResultSet('2020-01-01')

union all

select 
    dateValue,col3
from dbo.GetResultSet('2020-01-02')

union all

select 
    dateValue,col3
from dbo.GetResultSet('2020-01-03')
... 

但这会产生以下错误

查询处理器的内部资源用完了,无法 产生查询计划。这是罕见的事件,仅预期 极其复杂的查询或引用非常大的查询 表或分区的数量。请简化查询

请注意,日期范围也可以为1年。

我还尝试使用Parallel.ForEach编写C#以在不同的日期运行此函数,但这使我出现了Connection-Timeout异常。

我正在使用sql Server 2012。

任何建议或帮助都会受到赞赏。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)