是否可以启动一个需要花费大量时间的查询并通过Ajax监控UI的进度?
我考虑将该流程作为计划立即运行的“一次运行”作业启动。我可以将结果存储在临时表中,以便在完成后快速检索。我还可以记录报告的运行时间并将其平均,以便估计进度条的运行时间。
我目前使用Microsoft SQL 2005,但如果有必要,我愿意使用其他DBMS,如SQL 2008,MySQL等。
答案 0 :(得分:0)
一个想法,如果长时间运行的作业填充另一个表。
您有第二个数据库连接来监视源行中处理的行数,并且每隔几秒显示一个简单的“x行处理”
SELECT COUNT(*) FROM TargetTable WITH (NOLOCK)
如果您还有源表:
SELECT COUNT(*) FROM SourceTable WITH (NOLOCK)
..然后你可以使用“x行y行处理”
基本上,您必须使用第二个连接来监控第一个连接。但是,你还需要一些东西来衡量......