In MySQL, we can use the sys.ps_is_thread_instrumented()
function to check whether Performance Schema instrumentation for a given connection ID is enabled.
The function returns YES
or NO
, depending on whether the instrumentation is enabled for the given connection. It can also return UNKNOWN
if the connection ID is unknown, and NULL
if the connection ID is NULL
.
Syntax
The syntax goes like this:
sys.ps_is_thread_instrumented(in_connection_id)
Where in_connection_id
is the connection ID to check.
Example
Here’s an example to demonstrate:
SELECT sys.ps_is_thread_instrumented( 80 );
Result:
YES
This shows that instrumentation for connection ID 80 is enabled.
Check the Current Connection
We can use the connection_id()
function to check the current connection:
SELECT sys.ps_is_thread_instrumented( connection_id() );
Result:
YES
This shows that instrumentation for the current connection is enabled.
Here’s the current connection ID:
SELECT connection_id();
Result:
79
Non-Existent Connection ID
If the connection ID is unknown (or doesn’t exist), sys.ps_is_thread_instrumented()
returns UNKNOWN
:
SELECT sys.ps_is_thread_instrumented( 81 );
Result:
UNKNOWN
NULL
Connection ID
If the argument is NULL
, then NULL
is returned:
SELECT sys.ps_is_thread_instrumented( NULL );
Result:
NULL
Passing the Wrong Number of Arguments
Passing the wrong number of arguments results in an error:
SELECT sys.ps_is_thread_instrumented( 79, 80 );
Result:
ERROR 1318 (42000): Incorrect number of arguments for FUNCTION sys.ps_is_thread_instrumented; expected 1, got 2
The same applies when we don’t pass any arguments:
SELECT sys.ps_is_thread_instrumented( );
Result:
ERROR 1318 (42000): Incorrect number of arguments for FUNCTION sys.ps_is_thread_instrumented; expected 1, got 0