The query execution probe is triggered when the actual execution of the query starts, after the parsing and checking the query cache but before any privilege checks or optimization. By comparing the difference between the start and done probes you can monitor the time actually spent servicing the query (instead of just handling the parsing and other elements of the query).
query-exec-start(query, connectionid, database, user, host, exec_type) query-exec-done(status)
The information provided in the arguments for
query-exec-start are almost identical and
designed so that you can choose to monitor either the entire
query process (using
query-start) or only
the execution (using
while exposing the core information about the user, client,
and query being executed.
query-exec-start: Triggered when the
execution of a individual query is started. The arguments
query: The full text of the submitted
connectionid: The connection ID of
the client that submitted the query. The connection ID
equals the connection ID returned when the client first
connects and the
Id value in the
database: The database name on which
the query is being executed.
user: The username used to connect to
host: The hostname of the client.
exec_type: The type of execution.
Execution types are determined based on the contents of
the query and where it was submitted. The values for
each type are shown in the following table.
|0||Executed query from sql_parse, top-level query.|
|1||Executed prepared statement|
|2||Executed cursor statement|
|3||Executed query in stored procedure|
query-exec-done: Triggered when the
execution of the query has completed. The probe includes a
status, which returns 0
when the query is successfully executed and 1 if there was