【问题标题】:Begin and monitor progress on long running SQL queries via ajax通过 ajax 开始并监控长时间运行的 SQL 查询的进度
【发布时间】:2009-08-18 09:25:50
【问题描述】:
是否可以启动需要大量时间的查询并通过 Ajax 从 UI 监控进度?
我考虑将进程启动为计划立即运行的“运行一次”作业。我可以将结果存储在一个临时表中,以便在完成后快速检索。我还可以记录报告的运行时间并取平均值,以估算进度条的运行时间。
我目前使用 Microsoft SQL 2005,但如有必要,我愿意使用其他 DBMS,例如 SQL 2008、MySQL 等。
【问题讨论】:
标签:
sql
ajax
tsql
sql-server-agent
【解决方案1】:
一个想法,如果长期运行的作业填充另一个表。
您有第二个数据库连接来监控源行中处理了多少行,并每隔几秒显示一个简单的“x 行处理”
SELECT COUNT(*) FROM TargetTable WITH (NOLOCK)
如果你也有源表:
SELECT COUNT(*) FROM SourceTable WITH (NOLOCK)
..那么你可以使用“x of y rows processed”
基本上,您必须使用第二个连接来监控第一个。但是,您还需要测量一些东西...