有没有一种方法可以计时存储过程中循环每次迭代的执行时间

时间:2018-08-14 18:18:20

标签: mariadb

我的存储过程执行时间很长。这个特定的存储过程在循环内调用另一个存储过程。我知道是否在特定记录上的循环内运行存储过程不会花费很多时间(只是没有找到有问题的记录)。有没有一种方法可以跟踪执行每次循环迭代所花费的时间?我想将此信息以及在那个特定迭代中正在使用的记录的ID一起存储在表中,以试图确定引起问题的记录。

1 个答案:

答案 0 :(得分:1)

要测量执行时间,只需使用timestamp()和now()函数:

# Set start time
SET @stime:= NOW();
# Execute stored procedure
CALL myproc(@id,@params);
# calculate execution time in seconds
SET @exectime:= timestamp(NOW()) - timestamp(@stime);
# save execution time
INSRT INTO mytable (id, execution_time, procedure) VALUES (@id, @exectime, "myproc");
相关问题