繁体   English   中英

计算C#中执行之前存储过程的执行时间

[英]calculate execution time of before execution stored procedure in c#

我正在使用C#.net应用程序

我正在从我的C#代码中执行存储过程,大约需要2分钟才能完成其执行。 我在后端使用SQL Server 2008 R2。 所以我想显示一个进度条,该进度条显示存储过程的执行进度。 为此,我需要计算存储过程的执行时间。 因此,有什么方法可以计算执行时间+该应用程序在客户端数量上运行,因此存储过程的执行时间因客户端而异。 因此,请给我建议或寻找如何实现此目标的方法?

感谢您的宝贵意见

好问题 您可以考虑以下一些选项。

答:这是查询计划的很好的解释。 如何获得查询执行计划?

B.在您的存储过程中添加反馈(即报告回表)。 我假设有许多任务。 尝试在存储过程中的每个任务之间进行报告,以提供更精细的度量。 如果在没有表反馈的情况下比较整洁,您甚至可以将其分解为不同的存储过程。

C.一旦执行了该程序,您可能会拥有最佳的估计时间。

D.优化您的存储过程。 我可以想象,如果运行得快,对所有人都有利。 这意味着您的估计将减少! 注意事项:

希望有一些帮助。

从您提供的信息中,我只能猜测,但仍然只能看到两种方法:

  • 如果过程的执行长度取决于传递给它的参数(很自然的猜测:字节数组的长度),则可以测量某些级别参数的平均执行长度,可以将其硬编码(或者更好的是,可以从中解析)在启动时保存文件),然后用于预期运行时估算=>,随着时间的流逝,用户会看到需要多长时间才能完成。
  • 如果它不是基于传递的参数,而是基于数据库服务器负载,则可以调用服务器的cpu /硬盘驱动器负载水平,甚至可以根据最近时间的过程调用量来估算这些负载水平=>然后,这又可以导致您的执行时间估算。

我无法弄清任何更具体的内容,除非您例如共享过程调用及其生成的sql,理想情况下还要包含表和小数位数的详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM