我正在研究C#.net应用程序
我正在从我的c#代码执行存储过程,完成执行需要将近2分钟。我在后端使用SQL Server 2008 R2。所以我想显示一个进度条,显示存储过程的执行进度。为此,我需要计算执行存储过程的执行时间。那么我有什么方法可以计算执行时间+这个应用程序在我的客户端上运行,因此存储过程的执行时间因客户端而异。那么请给我建议或我搜索如何做到这一点的方式?
感谢您提前提供的宝贵意见
答案 0 :(得分:3)
好问题。以下是您可能会考虑的一些选项。
一个。这是对查询计划的一个很好的解释。 How do I obtain a Query Execution Plan?
B中。在存储过程中添加反馈(即报告回表)。我假设有一组很多任务。尝试在存储过程中的每个任务之间进行报告,以便为您提供更精细的度量。如果它没有反馈到表格,它甚至可以将其分解为不同的存储过程。
℃。一旦您的程序运行一次,您可能有最佳的估计时间。
d。优化您的存储过程。我可以想象如果这种情况很快就会对所有人有好处。这意味着你的估计会减少!需要考虑的事项:
使用临时表与子查询/多视图:[阅读此问题]。 (Why would using a temp table be faster than a nested query?)
您是否需要它来处理所有内容,或者是否可以仅处理自上次执行以来的增量?
希望有一些帮助。
答案 1 :(得分:2)
根据您提供的信息,我只能猜测,但我仍然只看到两种方法:
我无法弄清楚任何更具体的内容,除非您例如共享过程调用及其生成的sql,并具有表和规模的理想细节。