Table of Contents
- 5.1 Performance Schema Event Timing
- 5.2 Performance Schema Event Filtering
- 5.3 Event Pre-Filtering
- 5.4 Pre-Filtering by Instrument
- 5.5 Pre-Filtering by Object
- 5.6 Pre-Filtering by Thread
- 5.7 Pre-Filtering by Consumer
- 5.8 Example Consumer Configurations
- 5.9 Naming Instruments or Consumers for Filtering Operations
- 5.10 Determining What Is Instrumented
Specific Performance Schema features can be enabled at runtime to control which types of event collection occur.
Performance Schema setup tables contain information about monitoring configuration:
mysql> SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
       WHERE TABLE_SCHEMA = 'performance_schema'
       AND TABLE_NAME LIKE 'setup%';
+-------------------+
| TABLE_NAME        |
+-------------------+
| setup_actors      |
| setup_consumers   |
| setup_instruments |
| setup_objects     |
| setup_timers      |
+-------------------+
      You can examine the contents of these tables to obtain information
      about Performance Schema monitoring characteristics. If you have
      the UPDATE privilege, you can
      change Performance Schema operation by modifying setup tables to
      affect how monitoring occurs. For additional details about these
      tables, see Section 10.2, “Performance Schema Setup Tables”.
    
      To see which event timers are selected, query the
      setup_timers tables:
    
mysql> SELECT * FROM performance_schema.setup_timers;
+-------------+-------------+
| NAME        | TIMER_NAME  |
+-------------+-------------+
| idle        | MICROSECOND |
| wait        | CYCLE       |
| stage       | NANOSECOND  |
| statement   | NANOSECOND  |
| transaction | NANOSECOND  |
+-------------+-------------+
      The NAME value indicates the type of instrument
      to which the timer applies, and TIMER_NAME
      indicates which timer applies to those instruments. The timer
      applies to instruments where their name begins with an element
      matching the NAME value.
    
      To change the timer, update the NAME value. For
      example, to use the NANOSECOND timer for the
      wait timer:
    
mysql> UPDATE performance_schema.setup_timers
       SET TIMER_NAME = 'NANOSECOND'
       WHERE NAME = 'wait';
mysql> SELECT * FROM performance_schema.setup_timers;
+-------------+-------------+
| NAME        | TIMER_NAME  |
+-------------+-------------+
| idle        | MICROSECOND |
| wait        | NANOSECOND  |
| stage       | NANOSECOND  |
| statement   | NANOSECOND  |
| transaction | NANOSECOND  |
+-------------+-------------+For discussion of timers, see Section 5.1, “Performance Schema Event Timing”.
      The setup_instruments and
      setup_consumers tables list the
      instruments for which events can be collected and the types of
      consumers for which event information actually is collected,
      respectively. Other setup tables enable further modification of
      the monitoring configuration.
      Section 5.2, “Performance Schema Event Filtering”, discusses how you
      can modify these tables to affect event collection.
    
      If there are Performance Schema configuration changes that must be
      made at runtime using SQL statements and you would like these
      changes to take effect each time the server starts, put the
      statements in a file and start the server with the
      init_file system variable set to
      name the file. This strategy can also be useful if you have
      multiple monitoring configurations, each tailored to produce a
      different kind of monitoring, such as casual server health
      monitoring, incident investigation, application behavior
      troubleshooting, and so forth. Put the statements for each
      monitoring configuration into their own file and specify the
      appropriate file as the init_file
      value when you start the server.