29.12.16.2 tp_thread_group_state 表
tp_thread_group_state
表中,每个线程组在线程池中都有一个行。每行都提供了当前线程组的状态信息。
tp_thread_group_state
表中,有以下列:
-
TP_GROUP_ID
线程组 ID。这是该表中的唯一键。
-
CONSUMER THREADS
消费线程的数量。在消费线程变得阻塞或等待时,有最多一个线程准备执行。
-
RESERVE_THREADS
保留线程的数量。这意味着它们不会启动,直到需要唤醒新的线程且没有消费线程。通常,线程组需要一些线程,但这些线程很快就不再需要。它们会被保留,直到需要再次使用。它们占用一些额外的内存资源,但不占用额外的计算资源。
-
CONNECT_THREAD_COUNT
正在处理或等待处理连接初始化和身份验证的线程数量。每个线程组最多有四个连接线程;这些线程在无活动后过期。
-
CONNECTION_COUNT
使用该线程组的连接数量。
-
QUEUED_QUERIES
高优先级队列中的语句数量。
-
QUEUED_TRANSACTIONS
低优先级队列中的语句数量。这也代表了未开始的事务的队列。
-
STALL_LIMIT
线程组的
thread_pool_stall_limit
系统变量的值。这是所有线程组的相同值。 -
PRIO_KICKUP_TIMER
线程组的
thread_pool_prio_kickup_timer
系统变量的值。这是所有线程组的相同值。 -
ALGORITHM
线程组的
thread_pool_algorithm
系统变量的值。这是所有线程组的相同值。 -
THREAD_COUNT
线程池中作为该线程组的一部分启动的线程数量。
-
ACTIVE_THREAD_COUNT
正在执行语句的线程数量。
-
STALLED_THREAD_COUNT
该线程组中的阻塞语句数量。阻塞语句可能正在执行,但从线程池的角度来说,它们阻塞且没有进度。长时间运行的语句最终会落入这个类别。
-
WAITING_THREAD_NUMBER
如果线程正在处理线程组中的语句polling,这指定了该线程组中的线程号。可能该线程正在执行语句。
-
OLDEST_QUEUED
最长时间(以毫秒为单位)最老的排队语句等待执行的时间。
-
MAX_THREAD_IDS_IN_GROUP
线程组中的最大线程ID。这与
MAX(TP_THREAD_NUMBER)
在tp_thread_state
表中选择时相同。换言之,这两个查询是等价的。SELECT TP_GROUP_ID, MAX_THREAD_IDS_IN_GROUP FROM tp_thread_group_state; SELECT TP_GROUP_ID, MAX(TP_THREAD_NUMBER) FROM tp_thread_state GROUP BY TP_GROUP_ID;
-
EFFECTIVE_MAX_TRANSACTIONS_LIMIT
线程组的有效
max_transactions_limit_per_tg
值。 -
NUM_QUERY_THREADS
线程组中的工作线程数量。
-
TIME_OF_LAST_THREAD_CREATION
线程最后创建的时间点。
-
NUM_CONNECT_HANDLER_THREAD_IN_SLEEP
不活动连接处理线程的数量。
-
THREADS_BOUND_TO_TRANSACTION
当前事务中的线程数量,这个数量必须小于
thread_pool_max_transactions_limit
;这只有在thread_pool_max_transactions_limit
不为0
时设置。 -
QUERY_THREADS_COUNT
与num_query_threads相同,但用于不同的目的?
-
TIME_OF_EARLIEST_CON_EXPIRE
连接到期的最早时间点。
表tp_thread_group_state
有一个索引;这是一种唯一索引,基于TP_GROUP_ID
列。