的setup_consumers
下表列出了可用的消费者类型和已启用的类型:
mysql> SELECT * FROM performance_schema.setup_consumers;+----------------------------------+---------+ | 启用名字| | +----------------------------------+---------+ | events_stages_current没有| | | events_stages_history没有| | | events_stages_history_long没有| | | events_statements_current |是| | events_statements_history |是| | events_statements_history_long没有| | | events_transactions_current |是| | events_transactions_history |是| | events_transactions_history_long没有| | | events_waits_current没有| | | events_waits_history | ||events_waits_history_long|没有||global_instrumentation| YES | | thread_instrumentation | YES | | statements_digest | YES | +----------------------------------+---------+
修改setup_consumers
表来影响使用者阶段的预筛选,并确定将事件发送到的目的地。若要启用或禁用使用者,请设置其启用
价值是的
或没有
.
修订setup_consumers
表立即影响监控。
如果禁用某个使用者,服务器就不会花时间维护该使用者的目的地。例如,如果您不关心历史事件信息,请禁用历史消费者:
更新performance_schema。setup_consumersSET ENABLED = 'NO' WHERE NAME LIKE '%history%';
中的使用者设置setup_consumers
表形成了由高到低的层次结构。以下原则适用:
与使用者相关联的目的地不会接收事件,除非Performance Schema检查使用者并且启用了使用者。
只有当它所依赖的所有消费者(如果有)都启用时,才会检查消费者。
如果一个消费者未被选中,或者被选中但被禁用,则依赖于它的其他消费者不会被选中。
依赖的消费者可能有自己的依赖消费者。
如果事件不会被发送到任何目的地,则性能模式不会生成它。
下面的列表描述了可用的消费者值。有关几种代表性使用者配置及其对仪器的影响的讨论,请参见第5.8节“消费者配置示例”.
global_instrumentation
是最高层次的消费者。如果global_instrumentation
是没有
,它禁用全局插装。所有其他设置都是较低的级别,不进行检查;它们被设置成什么并不重要。在当前事件表或事件历史表中不维护全局或每个线程的信息,也不收集单个事件。如果global_instrumentation
是是的
,性能模式维护全局状态的信息,并检查thread_instrumentation
消费者。thread_instrumentation
仅当global_instrumentation
是是的
.否则,如果thread_instrumentation
是没有
,它禁用特定于线程的插装,并且忽略所有低级设置。在当前事件表或事件历史表中不维护每个线程的信息,也不收集单个事件。如果thread_instrumentation
是是的
,性能模式维护特定于线程的信息并进行检查events_
消费者。xxx
_current
这些消费者两者都需要global_instrumentation
而且thread_instrumentation
是是的
或者它们没有被检查。如果勾选,它们的作用如下:
events_waits_current
,如果没有
控件中的单个等待事件的收集events_waits_current
表格如果是的
,它启用等待事件收集,并且性能模式检查events_waits_history
而且events_waits_history_long
消费者。events_waits_history
如果没有选中event_waits_current
是没有
.否则,一个events_waits_history
的价值没有
或是的
控件中的等待事件的收集events_waits_history
表格events_waits_history_long
如果没有选中event_waits_current
是没有
.否则,一个events_waits_history_long
的价值没有
或是的
控件中的等待事件的收集events_waits_history_long
表格
这些消费者两者都需要global_instrumentation
而且thread_instrumentation
是是的
或者它们没有被检查。如果勾选,它们的作用如下:
events_stages_current
,如果没有
对象中的各个阶段事件的集合events_stages_current
表格如果是的
时,它启用阶段事件收集,并且性能模式检查events_stages_history
而且events_stages_history_long
消费者。events_stages_history
如果没有选中event_stages_current
是没有
.否则,一个events_stages_history
的价值没有
或是的
控件中的阶段事件的收集events_stages_history
表格events_stages_history_long
如果没有选中event_stages_current
是没有
.否则,一个events_stages_history_long
的价值没有
或是的
控件中的阶段事件的收集events_stages_history_long
表格
这些消费者两者都需要global_instrumentation
而且thread_instrumentation
是是的
或者它们没有被检查。如果勾选,它们的作用如下:
events_statements_current
,如果没有
控件中的单个语句事件的集合events_statements_current
表格如果是的
,它启用语句事件收集,并且性能模式检查events_statements_history
而且events_statements_history_long
消费者。events_statements_history
如果没有选中events_statements_current
是没有
.否则,一个events_statements_history
的价值没有
或是的
控件中的语句事件的收集events_statements_history
表格events_statements_history_long
如果没有选中events_statements_current
是没有
.否则,一个events_statements_history_long
的价值没有
或是的
控件中的语句事件的收集events_statements_history_long
表格
这些消费者两者都需要global_instrumentation
而且thread_instrumentation
是是的
或者它们没有被检查。如果勾选,它们的作用如下:
events_transactions_current
,如果没有
控件中的单个事务事件的收集events_transactions_current
表格如果是的
,它启用事务事件收集,并且性能模式检查events_transactions_history
而且events_transactions_history_long
消费者。events_transactions_history
如果没有选中events_transactions_current
是没有
.否则,一个events_transactions_history
的价值没有
或是的
控件中的事务事件的收集events_transactions_history
表格events_transactions_history_long
如果没有选中events_transactions_current
是没有
.否则,一个events_transactions_history_long
的价值没有
或是的
控件中的事务事件的收集events_transactions_history_long
表格
的statements_digest
消费者的需要global_instrumentation
是是的
或者它没有被检查。不依赖于语句事件消费者,因此您可以获得每个摘要的统计信息,而不必在events_statements_current
,这在开销方面是有利的。相反,你可以得到详细的声明events_statements_current
没有消化(的消化
而且DIGEST_TEXT
列是零
在这种情况下)。
有关语句摘要的详细信息,请参见性能模式语句摘要和抽样.