如何计算MySQL中存储过程的执行时间?

时间:2015-03-03 06:42:55

标签: mysql stored-procedures time

如果我有这个创建并调用过程的脚本:

 SET profiling = 1;


 /*Create procedure */
DELIMITER ++
DROP PROCEDURE IF EXISTS newproc++

CREATE PROCEDURE newproc()
       BEGIN
DECLARE x  INT;
SET x = 1;

WHILE x < 500 DO  

   SELECT * FROM tableName
   WHERE survived = 1
   ORDER BY class ;

   SET x = x + 1;
END WHILE;

END
++   
DELIMITER ;

/*Call procedure */
CALL newproc();


SHOW PROFILES;

SHOW PROFILES 显示500个查询中每个查询的单独执行时间。

但是如何显示所有所有组合的查询的总执行时间(e.i.newproc()过程的执行时间)?

1 个答案:

答案 0 :(得分:0)

使用时间间隔YEAR, QUARTER, MONTHYEAR_MONTH的活动时间将在几个月内解决;使用任何其他间隔的那些在几秒钟内解决。没有办法使计划在同一秒发生的事件以给定顺序执行。此外 - 由于舍入,线程应用程序的性质以及创建事件和发出执行事件所需的非零时间长度这一事实可能会延迟1或2秒。但是,INFORMATION_SCHEMA.EVENTS表的LAST_EXECUTED列或mysql.event表的last_executed列中显示的时间始终精确到实际事件执行时间的一秒之内。

参考this page.