显示查询进度

时间:2014-05-28 12:46:56

标签: sql jdbc

我想展示长时间运行jdbc查询的过程。这可能吗?

如果查询的总结果是100条记录,并且一次检索10条记录,那么在检索前10条记录后,是否可以知道剩余的90%?

提前致谢

2 个答案:

答案 0 :(得分:0)

尝试将进度条减少10,这应该可以解决问题

//something like that 
 if (progressBar1.Value < progressBar1.Maximum - 1)
            {
                progressBar1.Increment(2);
                progressBar1.Increment(-1);
            }

答案 1 :(得分:0)

我找到了这段代码。这可能很好用

SELECT r.session_id,r.command,CONVERT(NUMERIC(6,2),r.percent_complete) AS [完成百分比],CONVERT(VARCHAR(20),DATEADD(ms,r.estimated_completion_time,GetDate()),20)AS [ETA完成时间], CONVERT(NUMERIC(10,2),r.total_elapsed_time / 1000.0 / 60.0)AS [Elapsed Min], CONVERT(NUMERIC(10,2),r.estimated_completion_time / 1000.0 / 60.0)AS [ETA Min], CONVERT(NUMERIC(10,2),r.estimated_completion_time / 1000.0 / 60.0 / 60.0)AS [ETA Hours], CONVERT(VARCHAR(1000),(SELECT SUBSTRING(text,r.statement_start_offset / 2, 例如r.statement_end_offset = -1那么1000 ELSE(r.statement_end_offset-r.statement_start_offset)/ 2 END) FROM sys.dm_exec_sql_text(sql_handle))) FROM sys.dm_exec_requests r WHERE命令IN('RESTORE DATABASE','BACKUP DATABASE')