【发布时间】:2014-07-26 06:38:15
【问题描述】:
我在我的 ASP.NET MVC 项目中有一个使用 Telerik DataAccess ORM 的存储过程,它的作用是计算结果并插入或更新到标签中。
例如,当我传递一个参数“2014”并调用存储过程时,它会计算结果并更改名为2014_Table 的表。当我传递一个参数“2013”并调用存储过程时,它会计算结果并更改名为2013_Table 的表。如果我传递一个参数“2013,2014”,它将分别计算和更改表格。
现在我的问题是,如果我传递一个参数“2005,2006,2007,2008,2009,2010,2011,2012,2013,2014”,它将分别计算和更改表格,但需要很长时间(大约2分钟)。如何优化它并减少执行时间?
我认为是使用并行方式,循环十次通过传递单年字符串调用存储过程,但它需要连接数据库十次?而且 sp 函数是 CPU 密集型的,并行方式真的有效吗?异步方式怎么样?
【问题讨论】:
-
没有 any 想法这个 计算结果并更改表格 真正意味着什么,没有看到 any 代码 - 这是无法回答
-
其实我就是想问一下长时间运行的存储过程是不是CPU密集型的,并行使用是不是为了提高效率?
-
好吧,如果这样做有好处的话,SQL Server 本身已经包含了相当复杂的并行化查询方法。所以我不认为自己做会有任何帮助。可能有用的是调查您是否可以在一次操作中进行多年的计算,然后将这些年的结果“拆分” - 而不是计算十次,一个接一个......
标签: sql-server asp.net-mvc asp.net-mvc-4 stored-procedures parallel-processing