我目前面临的问题是需要花费相当长的时间来处理来自服务器的信息,并且我希望为用户提供主动反馈,以便知道应用程序看起来正在发生什么。C#:从SqlConnection对象获取反馈?
有关应用程序:它允许用户从指定的服务器中提取所有数据库以及这些数据库中的所有内容。这可能需要相当长一段时间,因为我们的一些数据库可以达到2TB的大小。每个服务器可以包含数百个数据库,因此,如果我尝试使用100个数据库加载服务器,并且其中30%的数据库大小超过100GB,那么在应用程序能够运行之前需要几分钟的时间再次有效。
目前我只是有一个简单的加载消息说:“请稍等,这可能需要一段时间...”。但是,在我看来,这对于需要几分钟时间的事情来说并不足够。
因此,我想知道是否有办法跟踪SqlConnection
对象的进度,因为它正在执行指定的查询?如果是这样,我可以提供什么类型的细节,并且是否有现成的资源可供查看并更好地理解解决方案?
我希望有一种方法可以做到这一点,而不必重新创建SqlConnection
对象。
谢谢大家的帮助!
编辑
此外,作为另注;我不在这里寻找代码的讲义。如果有任何可用的情况,我正在寻找能够帮助我解决这种情况的资源。我一直在调查这个问题已经有几天了,我想这里最好的地方就是寻求帮助。
额外
一个更详尽的解释:我想知道是否有提供与当前正在接收数据库,表,视图等名用户的方式。
例如:
- 负载表X从数据库是开服务器ž
- 加载表格从数据库B在服务器ž
只是一个想法在这里。让您的代码在启动SQL作业后立即返回的SPROC启动。该sproc应该返回一个标识用户作业的GUID,以便用户可以查询状态。该作业可以将进度记录写入表中,您可以查询该表。连接不需要保持打开状态,用户应用程序不需要保持打开状态。它全部断开连接。 GUID将用于检索有关作业的信息并有选择地控制作业。 – Amy
您可以将查询分解为较小的查询,并在每个阶段完成后向用户界面报告。 – Amicable
请看,这就是为什么当我卡住时,我会问StackOverflow问题。但是,性能会有什么影响?这是否会显着降低处理速度?在加载每个数据库的详细信息之前,我可以轻松地提取数据库名称列表,并通过该列表循环以提供反馈。 – lxxtacoxxl