I want to record execution time of all procedures in MySql.
For example, I have a database named test and it contains 25 procedures. When a procedure runs, I’d like each execution time to be recorded in a separate table.
Plan A: Add timing code in each proc.
Plan B: Add timing code around the
Plan C: Use the slowlog (with a low value in
long_query_time) to capture the timings for individual calls; then use
pt-query-digest to summarize the results.
long_query_time = 0 will flood the disk with the slowlog; be cautious.
=0.5 will catch only queries (such as
CALL) that take longer than half a second. If you are primarily looking for the “slowest”, this may be a better option. See: http://mysql.rjweb.org/doc.php/mysql_analysis#slow_queries_and_slowlog