Documentation Home

25.12.2.3 setup_instruments 表

setup_instruments表列出了可以为其收集事件的检测对象的类:

mysql> SELECT * FROM performance_schema.setup_instruments;
+---------------------------------------------------+---------+-------+
| NAME                                              | ENABLED | TIMED |
+---------------------------------------------------+---------+-------+
...
| stage/sql/end                                     | NO      | NO    |
| stage/sql/executing                               | NO      | NO    |
| stage/sql/init                                    | NO      | NO    |
| stage/sql/insert                                  | NO      | NO    |
...
| statement/sql/load                                | YES     | YES   |
| statement/sql/grant                               | YES     | YES   |
| statement/sql/check                               | YES     | YES   |
| statement/sql/flush                               | YES     | YES   |
...
| wait/synch/mutex/sql/LOCK_global_read_lock        | YES     | YES   |
| wait/synch/mutex/sql/LOCK_global_system_variables | YES     | YES   |
| wait/synch/mutex/sql/LOCK_lock_db                 | YES     | YES   |
| wait/synch/mutex/sql/LOCK_manager                 | YES     | YES   |
...
| wait/synch/rwlock/sql/LOCK_grant                  | YES     | YES   |
| wait/synch/rwlock/sql/LOGGER::LOCK_logger         | YES     | YES   |
| wait/synch/rwlock/sql/LOCK_sys_init_connect       | YES     | YES   |
| wait/synch/rwlock/sql/LOCK_sys_init_slave         | YES     | YES   |
...
| wait/io/file/sql/binlog                           | YES     | YES   |
| wait/io/file/sql/binlog_index                     | YES     | YES   |
| wait/io/file/sql/casetest                         | YES     | YES   |
| wait/io/file/sql/dbopt                            | YES     | YES   |
...

添加到源代码的每个工具都会为setup_instruments表提供一行,即使未执行已检测的代码也是如此。启用和执行仪器时,将创建仪器实例,这些实例在 xxx_instances 表中可见,例如file_instancesrwlock_instances

对大多数 setup_instruments行的修改会立即影响监控。对于某些仪器,修改仅在服务器启动时有效;在运行时更改它们没有效果。这主要影响服务器中的互斥体、条件和 rwlocks,尽管可能有其他工具也是如此。

有关 setup_instruments表在事件过滤中的作用的更多信息,请参阅 第 25.4.3 节,“事件预过滤”

setup_instruments表有以下列:

  • NAME

    仪器名称。仪器名称可能有多个部分并形成一个层次结构,如 第 25.6 节“性能模式仪器命名约定”中所述。执行工具产生的事件具有 EVENT_NAME从工具值中获取的NAME值。(事件并没有真正的名称,但这提供了一种将事件与乐器相关联的方法。)

  • ENABLED

    仪器是否启用。值为 YESNO。禁用的仪器不会产生任何事件。此列可以修改,但设置ENABLED对已创建的工具没有影响。

  • TIMED

    仪器是否定时。值为 YESNO。此列可以修改,但设置 TIMED对已创建的工具没有影响。

    对于内存仪器, 由于内存操作不定时 TIMED ,因此忽略列。setup_instruments

    如果已启用的仪器未计时,则仪器代码已启用,但定时器未启用。仪器产生的事件具有NULLTIMER_STARTTIMER_END定时器 TIMER_WAIT值。这反过来会导致在汇总表中计算总和、最小值、最大值和平均时间值时忽略这些值。

TRUNCATE TABLE不允许用于setup_instruments表。