You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
YZWL/IDEA/sys/x$processlist.sql

49 lines
5.6 KiB

create definer = `mysql.sys`@localhost view sys.x$processlist as
select `pps`.`THREAD_ID` AS `thd_id`,
`pps`.`PROCESSLIST_ID` AS `conn_id`,
if((`pps`.`NAME` in ('thread/sql/one_connection', 'thread/thread_pool/tp_one_connection')),
concat(`pps`.`PROCESSLIST_USER`, '@', convert(`pps`.`PROCESSLIST_HOST` using utf8mb4)),
replace(`pps`.`NAME`, 'thread/', '')) AS `user`,
`pps`.`PROCESSLIST_DB` AS `db`,
`pps`.`PROCESSLIST_COMMAND` AS `command`,
`pps`.`PROCESSLIST_STATE` AS `state`,
`pps`.`PROCESSLIST_TIME` AS `time`,
`pps`.`PROCESSLIST_INFO` AS `current_statement`,
`pps`.`EXECUTION_ENGINE` AS `execution_engine`,
if((`esc`.`END_EVENT_ID` is null), `esc`.`TIMER_WAIT`, NULL) AS `statement_latency`,
if((`esc`.`END_EVENT_ID` is null), round((100 * (`estc`.`WORK_COMPLETED` / `estc`.`WORK_ESTIMATED`)), 2),
NULL) AS `progress`,
`esc`.`LOCK_TIME` AS `lock_latency`,
`esc`.`CPU_TIME` AS `cpu_latency`,
`esc`.`ROWS_EXAMINED` AS `rows_examined`,
`esc`.`ROWS_SENT` AS `rows_sent`,
`esc`.`ROWS_AFFECTED` AS `rows_affected`,
`esc`.`CREATED_TMP_TABLES` AS `tmp_tables`,
`esc`.`CREATED_TMP_DISK_TABLES` AS `tmp_disk_tables`,
if(((`esc`.`NO_GOOD_INDEX_USED` > 0) or (`esc`.`NO_INDEX_USED` > 0)), 'YES',
'NO') AS `full_scan`,
if((`esc`.`END_EVENT_ID` is not null), `esc`.`SQL_TEXT`, NULL) AS `last_statement`,
if((`esc`.`END_EVENT_ID` is not null), `esc`.`TIMER_WAIT`, NULL) AS `last_statement_latency`,
`sys`.`mem`.`current_allocated` AS `current_memory`,
`ewc`.`EVENT_NAME` AS `last_wait`,
if(((`ewc`.`END_EVENT_ID` is null) and (`ewc`.`EVENT_NAME` is not null)), 'Still Waiting',
`ewc`.`TIMER_WAIT`) AS `last_wait_latency`,
`ewc`.`SOURCE` AS `source`,
`etc`.`TIMER_WAIT` AS `trx_latency`,
`etc`.`STATE` AS `trx_state`,
`etc`.`AUTOCOMMIT` AS `trx_autocommit`,
`conattr_pid`.`ATTR_VALUE` AS `pid`,
`conattr_progname`.`ATTR_VALUE` AS `program_name`
from (((((((`performance_schema`.`threads` `pps` left join `performance_schema`.`events_waits_current` `ewc`
on ((`pps`.`THREAD_ID` = `ewc`.`THREAD_ID`))) left join `performance_schema`.`events_stages_current` `estc`
on ((`pps`.`THREAD_ID` = `estc`.`THREAD_ID`))) left join `performance_schema`.`events_statements_current` `esc`
on ((`pps`.`THREAD_ID` = `esc`.`THREAD_ID`))) left join `performance_schema`.`events_transactions_current` `etc`
on ((`pps`.`THREAD_ID` = `etc`.`THREAD_ID`))) left join `sys`.`x$memory_by_thread_by_current_bytes` `mem`
on ((`pps`.`THREAD_ID` = `sys`.`mem`.`thread_id`))) left join `performance_schema`.`session_connect_attrs` `conattr_pid`
on (((`conattr_pid`.`PROCESSLIST_ID` = `pps`.`PROCESSLIST_ID`) and
(`conattr_pid`.`ATTR_NAME` = '_pid')))) left join `performance_schema`.`session_connect_attrs` `conattr_progname`
on (((`conattr_progname`.`PROCESSLIST_ID` = `pps`.`PROCESSLIST_ID`) and
(`conattr_progname`.`ATTR_NAME` = 'program_name'))))
order by `pps`.`PROCESSLIST_TIME` desc, `last_wait_latency` desc;