【问题标题】:Which method is better when I execute the stored procedure which take a long time in ASP.NET MVC?当我在 ASP.NET MVC 中执行需要很长时间的存储过程时,哪种方法更好?
【发布时间】: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


【解决方案1】:

我不建议使用异步方式来解决这个问题,因为它是 CPU 密集型的。

【讨论】:

    猜你喜欢
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    相关资源
    最近更新 更多