我正在写这里,因为我在谷歌搜索时找不到信息。我有一个SQL过程大约需要2个小时才能执行,有时会花费更长的时间,有时甚至会更短。我想知道是否有一个选项可以在执行过程时监视其进度?
致谢
答案 0 :(得分:0)
一种可能的解决方案是建立一个日志表来测量进度,并在过程达到特定行时插入日期时间记录,该表将在过程运行时进行更新。
CREATE TABLE MONITOR
(
ID INT IDENTITY(1,1) NOT NULL,
STEP_NUMBER INT,
EXECUTION_DT DATETIME
)
CREATE PROC SPX_MEASURE_PROGRESS
AS
WAITFOR DELAY '00:00:05'
INSERT INTO MONITOR VALUES(1,GETDATE())
PRINT 'STEP 1'
WAITFOR DELAY '00:00:05'
PRINT 'STEP 2'
INSERT INTO MONITOR VALUES(2,GETDATE())
WAITFOR DELAY '00:00:05'
PRINT 'STEP 3'
INSERT INTO MONITOR VALUES(3,GETDATE())
EXEC DBO.SPX_MEASURE_PROGRESS
SELECT * FROM MONITOR