diff --git a/include/mysql/components/services/psi_statement_bits.h b/include/mysql/components/services/psi_statement_bits.h index 09acd3de08c..86ddc00ee17 100644 --- a/include/mysql/components/services/psi_statement_bits.h +++ b/include/mysql/components/services/psi_statement_bits.h @@ -156,6 +156,8 @@ struct PSI_statement_locker_state_v1 { void *m_statement; /** Locked time. */ unsigned long long m_lock_time; + /** CPU time. */ + unsigned long long m_cpu_time; /** Rows sent. */ unsigned long long m_rows_sent; /** Rows examined. */ @@ -295,6 +297,14 @@ typedef void (*set_statement_query_id_t)(struct PSI_statement_locker *locker, typedef void (*set_statement_lock_time_t)(struct PSI_statement_locker *locker, unsigned long long lock_time); +/** + Set a statement event cpu time. + @param locker the statement locker + @param cpu_time the cpu time, in microseconds +*/ +typedef void (*set_statement_cpu_time_t)(struct PSI_statement_locker *locker, + unsigned long long cpu_time); + /** Set a statement event rows sent metric. @param locker the statement locker diff --git a/include/mysql/components/services/psi_statement_service.h b/include/mysql/components/services/psi_statement_service.h index d2d8b8d2535..edf5de0171a 100644 --- a/include/mysql/components/services/psi_statement_service.h +++ b/include/mysql/components/services/psi_statement_service.h @@ -48,6 +48,8 @@ start_statement_v1_t start_statement; set_statement_text_v1_t set_statement_text; /** @sa set_statement_lock_time_t. */ set_statement_lock_time_t set_statement_lock_time; +/** @sa set_statement_cpu_time_t. */ +set_statement_cpu_time_t set_statement_cpu_time; /** @sa set_statement_rows_sent_t. */ set_statement_rows_sent_t set_statement_rows_sent; /** @sa set_statement_rows_examined_t. */ @@ -135,6 +137,8 @@ set_statement_text_v1_t set_statement_text; set_statement_query_id_t set_statement_query_id; /** @sa set_statement_lock_time_t. */ set_statement_lock_time_t set_statement_lock_time; +/** @sa set_statement_cpu_time_t. */ +set_statement_cpu_time_t set_statement_cpu_time; /** @sa set_statement_rows_sent_t. */ set_statement_rows_sent_t set_statement_rows_sent; /** @sa set_statement_rows_examined_t. */ diff --git a/include/mysql/psi/mysql_statement.h b/include/mysql/psi/mysql_statement.h index cf1910a69cd..c335c75cdeb 100644 --- a/include/mysql/psi/mysql_statement.h +++ b/include/mysql/psi/mysql_statement.h @@ -119,6 +119,15 @@ struct CHARSET_INFO; } while (0) #endif +#ifdef HAVE_PSI_STATEMENT_INTERFACE +#define MYSQL_SET_STATEMENT_CPU_TIME(LOCKER, P1) \ + inline_mysql_set_statement_cpu_time(LOCKER, P1) +#else +#define MYSQL_SET_STATEMENT_CPU_TIME(LOCKER, P1) \ + do { \ + } while (0) +#endif + #ifdef HAVE_PSI_STATEMENT_INTERFACE #define MYSQL_SET_STATEMENT_ROWS_SENT(LOCKER, P1) \ inline_mysql_set_statement_rows_sent(LOCKER, P1) @@ -250,6 +259,13 @@ static inline void inline_mysql_set_statement_lock_time( } } +static inline void inline_mysql_set_statement_cpu_time( + PSI_statement_locker *locker, ulonglong count) { + if (likely(locker != NULL)) { + PSI_STATEMENT_CALL(set_statement_cpu_time)(locker, count); + } +} + static inline void inline_mysql_set_statement_rows_sent( PSI_statement_locker *locker, ulonglong count) { if (likely(locker != nullptr)) { diff --git a/include/mysql/psi/psi_abi_statement_v1.h.pp b/include/mysql/psi/psi_abi_statement_v1.h.pp index b625cf18e51..5a75092f371 100644 --- a/include/mysql/psi/psi_abi_statement_v1.h.pp +++ b/include/mysql/psi/psi_abi_statement_v1.h.pp @@ -49,6 +49,7 @@ struct PSI_statement_locker_state_v1 { unsigned long long (*m_timer)(void); void *m_statement; unsigned long long m_lock_time; + unsigned long long m_cpu_time; unsigned long long m_rows_sent; unsigned long long m_rows_examined; unsigned long long m_rows_deleted; @@ -103,6 +104,8 @@ typedef void (*set_statement_query_id_t)(struct PSI_statement_locker *locker, unsigned long long query_id); typedef void (*set_statement_lock_time_t)(struct PSI_statement_locker *locker, unsigned long long lock_time); +typedef void (*set_statement_cpu_time_t)(struct PSI_statement_locker *locker, + unsigned long long cpu_time); typedef void (*set_statement_rows_sent_t)(struct PSI_statement_locker *locker, unsigned long long count); typedef void (*set_statement_rows_examined_t)( @@ -191,6 +194,7 @@ struct PSI_statement_service_v2 { set_statement_text_v1_t set_statement_text; set_statement_query_id_t set_statement_query_id; set_statement_lock_time_t set_statement_lock_time; + set_statement_cpu_time_t set_statement_cpu_time; set_statement_rows_sent_t set_statement_rows_sent; set_statement_rows_examined_t set_statement_rows_examined; inc_statement_rows_deleted_t inc_statement_rows_deleted; diff --git a/include/mysql/psi/psi_statement.h b/include/mysql/psi/psi_statement.h index 2d26af5951a..b82c90a5000 100644 --- a/include/mysql/psi/psi_statement.h +++ b/include/mysql/psi/psi_statement.h @@ -83,6 +83,8 @@ struct PSI_statement_service_v2 { set_statement_query_id_t set_statement_query_id; /** @sa set_statement_lock_time_t. */ set_statement_lock_time_t set_statement_lock_time; + /** @sa set_statement_cpu_time_t. */ + set_statement_cpu_time_t set_statement_cpu_time; /** @sa set_statement_rows_sent_t. */ set_statement_rows_sent_t set_statement_rows_sent; /** @sa set_statement_rows_examined_t. */ diff --git a/include/pfs_statement_provider.h b/include/pfs_statement_provider.h index f68bf8d7710..c820a0a7587 100644 --- a/include/pfs_statement_provider.h +++ b/include/pfs_statement_provider.h @@ -70,6 +70,9 @@ void pfs_set_statement_query_id_v2(PSI_statement_locker *locker, void pfs_set_statement_lock_time_v2(PSI_statement_locker *locker, ulonglong count); +void pfs_set_statement_cpu_time_v2(PSI_statement_locker *locker, + ulonglong count); + void pfs_set_statement_rows_sent_v2(PSI_statement_locker *locker, ulonglong count); diff --git a/mysql-test/suite/perfschema/r/dd_version_check.result b/mysql-test/suite/perfschema/r/dd_version_check.result index c0b504a7376..50822615b51 100644 --- a/mysql-test/suite/perfschema/r/dd_version_check.result +++ b/mysql-test/suite/perfschema/r/dd_version_check.result @@ -1,6 +1,6 @@ "Checking the data dictionary properties ..." SUBSTRING_INDEX(SUBSTRING(properties, LOCATE('PS_VERSION', properties), 30), ';', 1) -PS_VERSION=80020003 +PS_VERSION=80020004 "Checking the performance schema database structure ..." CHECK STATUS -The tables in the performance_schema were last changed in MySQL 8.0.20-003 +The tables in the performance_schema were last changed in MySQL 8.0.20-004 diff --git a/mysql-test/suite/perfschema/r/dml_esms_by_digest.result b/mysql-test/suite/perfschema/r/dml_esms_by_digest.result index 9cc8669ea42..882b3f4571f 100644 --- a/mysql-test/suite/perfschema/r/dml_esms_by_digest.result +++ b/mysql-test/suite/perfschema/r/dml_esms_by_digest.result @@ -1,9 +1,9 @@ select * from performance_schema.events_statements_summary_by_digest where digest like 'XXYYZZ%' limit 1; -SCHEMA_NAME DIGEST DIGEST_TEXT COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED FIRST_SEEN LAST_SEEN QUANTILE_95 QUANTILE_99 QUANTILE_999 QUERY_SAMPLE_TEXT QUERY_SAMPLE_SEEN QUERY_SAMPLE_TIMER_WAIT +SCHEMA_NAME DIGEST DIGEST_TEXT COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME FIRST_SEEN LAST_SEEN QUANTILE_95 QUANTILE_99 QUANTILE_999 QUERY_SAMPLE_TEXT QUERY_SAMPLE_SEEN QUERY_SAMPLE_TIMER_WAIT select * from performance_schema.events_statements_summary_by_digest where digest='XXYYZZ'; -SCHEMA_NAME DIGEST DIGEST_TEXT COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED FIRST_SEEN LAST_SEEN QUANTILE_95 QUANTILE_99 QUANTILE_999 QUERY_SAMPLE_TEXT QUERY_SAMPLE_SEEN QUERY_SAMPLE_TIMER_WAIT +SCHEMA_NAME DIGEST DIGEST_TEXT COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME FIRST_SEEN LAST_SEEN QUANTILE_95 QUANTILE_99 QUANTILE_999 QUERY_SAMPLE_TEXT QUERY_SAMPLE_SEEN QUERY_SAMPLE_TIMER_WAIT insert into performance_schema.events_statements_summary_by_digest set digest='XXYYZZ', count_star=1, sum_timer_wait=2, min_timer_wait=3, avg_timer_wait=4, max_timer_wait=5; diff --git a/mysql-test/suite/perfschema/r/dml_esms_by_program.result b/mysql-test/suite/perfschema/r/dml_esms_by_program.result index 00437ea81d9..72a2b2b69ec 100644 --- a/mysql-test/suite/perfschema/r/dml_esms_by_program.result +++ b/mysql-test/suite/perfschema/r/dml_esms_by_program.result @@ -1,9 +1,9 @@ select * from performance_schema.events_statements_summary_by_program where object_name like 'XXYYZZ%' limit 1; -OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT COUNT_STATEMENTS SUM_STATEMENTS_WAIT MIN_STATEMENTS_WAIT AVG_STATEMENTS_WAIT MAX_STATEMENTS_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED +OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT COUNT_STATEMENTS SUM_STATEMENTS_WAIT MIN_STATEMENTS_WAIT AVG_STATEMENTS_WAIT MAX_STATEMENTS_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME select * from performance_schema.events_statements_summary_by_program where object_name='XXYYZZ'; -OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT COUNT_STATEMENTS SUM_STATEMENTS_WAIT MIN_STATEMENTS_WAIT AVG_STATEMENTS_WAIT MAX_STATEMENTS_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED +OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT COUNT_STATEMENTS SUM_STATEMENTS_WAIT MIN_STATEMENTS_WAIT AVG_STATEMENTS_WAIT MAX_STATEMENTS_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME insert into performance_schema.events_statements_summary_by_program set object_name='XXYYZZ', count_star=1, sum_timer_wait=2, min_timer_wait=3, avg_timer_wait=4, max_timer_wait=5; diff --git a/mysql-test/suite/perfschema/r/dml_prepared_statements_instances.result b/mysql-test/suite/perfschema/r/dml_prepared_statements_instances.result index 0f926ebaa6b..1e11992e564 100644 --- a/mysql-test/suite/perfschema/r/dml_prepared_statements_instances.result +++ b/mysql-test/suite/perfschema/r/dml_prepared_statements_instances.result @@ -1,9 +1,9 @@ select * from performance_schema.prepared_statements_instances where owner_object_name like 'XXYYZZ%' limit 1; -OBJECT_INSTANCE_BEGIN STATEMENT_ID STATEMENT_NAME SQL_TEXT OWNER_THREAD_ID OWNER_EVENT_ID OWNER_OBJECT_TYPE OWNER_OBJECT_SCHEMA OWNER_OBJECT_NAME TIMER_PREPARE COUNT_REPREPARE COUNT_EXECUTE SUM_TIMER_EXECUTE MIN_TIMER_EXECUTE AVG_TIMER_EXECUTE MAX_TIMER_EXECUTE SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED +OBJECT_INSTANCE_BEGIN STATEMENT_ID STATEMENT_NAME SQL_TEXT OWNER_THREAD_ID OWNER_EVENT_ID OWNER_OBJECT_TYPE OWNER_OBJECT_SCHEMA OWNER_OBJECT_NAME TIMER_PREPARE COUNT_REPREPARE COUNT_EXECUTE SUM_TIMER_EXECUTE MIN_TIMER_EXECUTE AVG_TIMER_EXECUTE MAX_TIMER_EXECUTE SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME select * from performance_schema.prepared_statements_instances where owner_object_name='XXYYZZ'; -OBJECT_INSTANCE_BEGIN STATEMENT_ID STATEMENT_NAME SQL_TEXT OWNER_THREAD_ID OWNER_EVENT_ID OWNER_OBJECT_TYPE OWNER_OBJECT_SCHEMA OWNER_OBJECT_NAME TIMER_PREPARE COUNT_REPREPARE COUNT_EXECUTE SUM_TIMER_EXECUTE MIN_TIMER_EXECUTE AVG_TIMER_EXECUTE MAX_TIMER_EXECUTE SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED +OBJECT_INSTANCE_BEGIN STATEMENT_ID STATEMENT_NAME SQL_TEXT OWNER_THREAD_ID OWNER_EVENT_ID OWNER_OBJECT_TYPE OWNER_OBJECT_SCHEMA OWNER_OBJECT_NAME TIMER_PREPARE COUNT_REPREPARE COUNT_EXECUTE SUM_TIMER_EXECUTE MIN_TIMER_EXECUTE AVG_TIMER_EXECUTE MAX_TIMER_EXECUTE SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME insert into performance_schema.prepared_statements_instances set owner_object_name='XXYYZZ', count_execute=1, sum_timer_execute=2, min_timer_execute=3, avg_timer_execute=4, max_timer_execute=5; diff --git a/mysql-test/suite/perfschema/r/schema.result b/mysql-test/suite/perfschema/r/schema.result index 371aa270b35..79331a580be 100644 --- a/mysql-test/suite/perfschema/r/schema.result +++ b/mysql-test/suite/perfschema/r/schema.result @@ -285,6 +285,7 @@ events_statements_current CREATE TABLE `events_statements_current` ( `NESTING_EVENT_TYPE` enum('TRANSACTION','STATEMENT','STAGE','WAIT') DEFAULT NULL, `NESTING_EVENT_LEVEL` int DEFAULT NULL, `STATEMENT_ID` bigint unsigned DEFAULT NULL, + `CPU_TIME` bigint unsigned NOT NULL, PRIMARY KEY (`THREAD_ID`,`EVENT_ID`) ) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci show create table events_statements_history; @@ -413,6 +414,7 @@ events_statements_summary_by_digest CREATE TABLE `events_statements_summary_by_d `SUM_ROWS_DELETED` bigint unsigned NOT NULL, `SUM_ROWS_INSERTED` bigint unsigned NOT NULL, `SUM_ROWS_UPDATED` bigint unsigned NOT NULL, + `SUM_CPU_TIME` bigint unsigned NOT NULL, `FIRST_SEEN` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `LAST_SEEN` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `QUANTILE_95` bigint unsigned NOT NULL, @@ -455,6 +457,7 @@ events_statements_summary_by_host_by_event_name CREATE TABLE `events_statements_ `SUM_ROWS_DELETED` bigint unsigned NOT NULL, `SUM_ROWS_INSERTED` bigint unsigned NOT NULL, `SUM_ROWS_UPDATED` bigint unsigned NOT NULL, + `SUM_CPU_TIME` bigint unsigned NOT NULL, UNIQUE KEY `HOST` (`HOST`,`EVENT_NAME`) ) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci show create table events_statements_summary_by_thread_by_event_name; @@ -489,6 +492,7 @@ events_statements_summary_by_thread_by_event_name CREATE TABLE `events_statement `SUM_ROWS_DELETED` bigint unsigned NOT NULL, `SUM_ROWS_INSERTED` bigint unsigned NOT NULL, `SUM_ROWS_UPDATED` bigint unsigned NOT NULL, + `SUM_CPU_TIME` bigint unsigned NOT NULL, PRIMARY KEY (`THREAD_ID`,`EVENT_NAME`) ) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci show create table events_statements_summary_by_user_by_event_name; @@ -523,6 +527,7 @@ events_statements_summary_by_user_by_event_name CREATE TABLE `events_statements_ `SUM_ROWS_DELETED` bigint unsigned NOT NULL, `SUM_ROWS_INSERTED` bigint unsigned NOT NULL, `SUM_ROWS_UPDATED` bigint unsigned NOT NULL, + `SUM_CPU_TIME` bigint unsigned NOT NULL, UNIQUE KEY `USER` (`USER`,`EVENT_NAME`) ) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci show create table events_statements_summary_by_account_by_event_name; @@ -558,6 +563,7 @@ events_statements_summary_by_account_by_event_name CREATE TABLE `events_statemen `SUM_ROWS_DELETED` bigint unsigned NOT NULL, `SUM_ROWS_INSERTED` bigint unsigned NOT NULL, `SUM_ROWS_UPDATED` bigint unsigned NOT NULL, + `SUM_CPU_TIME` bigint unsigned NOT NULL, UNIQUE KEY `ACCOUNT` (`USER`,`HOST`,`EVENT_NAME`) ) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci show create table events_statements_summary_global_by_event_name; @@ -591,6 +597,7 @@ events_statements_summary_global_by_event_name CREATE TABLE `events_statements_s `SUM_ROWS_DELETED` bigint unsigned NOT NULL, `SUM_ROWS_INSERTED` bigint unsigned NOT NULL, `SUM_ROWS_UPDATED` bigint unsigned NOT NULL, + `SUM_CPU_TIME` bigint unsigned NOT NULL, PRIMARY KEY (`EVENT_NAME`) ) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci show create table events_transactions_current; diff --git a/mysql-test/suite/perfschema/r/start_server_disable_statements.result b/mysql-test/suite/perfschema/r/start_server_disable_statements.result index 678b615fd54..57d5330b4e7 100644 --- a/mysql-test/suite/perfschema/r/start_server_disable_statements.result +++ b/mysql-test/suite/perfschema/r/start_server_disable_statements.result @@ -118,16 +118,16 @@ where name like "statement/%" and enabled='YES'; NAME ENABLED TIMED PROPERTIES VOLATILITY DOCUMENTATION select * from performance_schema.events_statements_summary_global_by_event_name where count_star > 0; -EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED +EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME select * from performance_schema.events_statements_summary_by_thread_by_event_name where count_star > 0; -THREAD_ID EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED +THREAD_ID EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME select * from performance_schema.events_statements_summary_by_user_by_event_name where count_star > 0; -USER EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED +USER EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME select * from performance_schema.events_statements_summary_by_host_by_event_name where count_star > 0; -HOST EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED +HOST EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME select * from performance_schema.events_statements_summary_by_account_by_event_name where count_star > 0; -USER HOST EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED +USER HOST EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME diff --git a/mysql-test/suite/perfschema/r/start_server_nothing.result b/mysql-test/suite/perfschema/r/start_server_nothing.result index 4a0c1dd9601..9fe3e3d3f86 100644 --- a/mysql-test/suite/perfschema/r/start_server_nothing.result +++ b/mysql-test/suite/perfschema/r/start_server_nothing.result @@ -287,21 +287,21 @@ USER EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIME select * from performance_schema.events_stages_summary_global_by_event_name; EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT select * from performance_schema.events_statements_current; -THREAD_ID EVENT_ID END_EVENT_ID EVENT_NAME SOURCE TIMER_START TIMER_END TIMER_WAIT LOCK_TIME SQL_TEXT DIGEST DIGEST_TEXT CURRENT_SCHEMA OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME OBJECT_INSTANCE_BEGIN MYSQL_ERRNO RETURNED_SQLSTATE MESSAGE_TEXT ERRORS WARNINGS ROWS_AFFECTED ROWS_SENT ROWS_EXAMINED CREATED_TMP_DISK_TABLES CREATED_TMP_TABLES SELECT_FULL_JOIN SELECT_FULL_RANGE_JOIN SELECT_RANGE SELECT_RANGE_CHECK SELECT_SCAN SORT_MERGE_PASSES SORT_RANGE SORT_ROWS SORT_SCAN NO_INDEX_USED NO_GOOD_INDEX_USED NESTING_EVENT_ID NESTING_EVENT_TYPE NESTING_EVENT_LEVEL STATEMENT_ID +THREAD_ID EVENT_ID END_EVENT_ID EVENT_NAME SOURCE TIMER_START TIMER_END TIMER_WAIT LOCK_TIME SQL_TEXT DIGEST DIGEST_TEXT CURRENT_SCHEMA OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME OBJECT_INSTANCE_BEGIN MYSQL_ERRNO RETURNED_SQLSTATE MESSAGE_TEXT ERRORS WARNINGS ROWS_AFFECTED ROWS_SENT ROWS_EXAMINED CREATED_TMP_DISK_TABLES CREATED_TMP_TABLES SELECT_FULL_JOIN SELECT_FULL_RANGE_JOIN SELECT_RANGE SELECT_RANGE_CHECK SELECT_SCAN SORT_MERGE_PASSES SORT_RANGE SORT_ROWS SORT_SCAN NO_INDEX_USED NO_GOOD_INDEX_USED NESTING_EVENT_ID NESTING_EVENT_TYPE NESTING_EVENT_LEVEL STATEMENT_ID CPU_TIME select * from performance_schema.events_statements_history; THREAD_ID EVENT_ID END_EVENT_ID EVENT_NAME SOURCE TIMER_START TIMER_END TIMER_WAIT LOCK_TIME SQL_TEXT DIGEST DIGEST_TEXT CURRENT_SCHEMA OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME OBJECT_INSTANCE_BEGIN MYSQL_ERRNO RETURNED_SQLSTATE MESSAGE_TEXT ERRORS WARNINGS ROWS_AFFECTED ROWS_SENT ROWS_EXAMINED CREATED_TMP_DISK_TABLES CREATED_TMP_TABLES SELECT_FULL_JOIN SELECT_FULL_RANGE_JOIN SELECT_RANGE SELECT_RANGE_CHECK SELECT_SCAN SORT_MERGE_PASSES SORT_RANGE SORT_ROWS SORT_SCAN NO_INDEX_USED NO_GOOD_INDEX_USED NESTING_EVENT_ID NESTING_EVENT_TYPE NESTING_EVENT_LEVEL STATEMENT_ID select * from performance_schema.events_statements_history_long; THREAD_ID EVENT_ID END_EVENT_ID EVENT_NAME SOURCE TIMER_START TIMER_END TIMER_WAIT LOCK_TIME SQL_TEXT DIGEST DIGEST_TEXT CURRENT_SCHEMA OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME OBJECT_INSTANCE_BEGIN MYSQL_ERRNO RETURNED_SQLSTATE MESSAGE_TEXT ERRORS WARNINGS ROWS_AFFECTED ROWS_SENT ROWS_EXAMINED CREATED_TMP_DISK_TABLES CREATED_TMP_TABLES SELECT_FULL_JOIN SELECT_FULL_RANGE_JOIN SELECT_RANGE SELECT_RANGE_CHECK SELECT_SCAN SORT_MERGE_PASSES SORT_RANGE SORT_ROWS SORT_SCAN NO_INDEX_USED NO_GOOD_INDEX_USED NESTING_EVENT_ID NESTING_EVENT_TYPE NESTING_EVENT_LEVEL STATEMENT_ID select * from performance_schema.events_statements_summary_by_account_by_event_name; -USER HOST EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED +USER HOST EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME select * from performance_schema.events_statements_summary_by_host_by_event_name; -HOST EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED +HOST EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME select * from performance_schema.events_statements_summary_by_thread_by_event_name; -THREAD_ID EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED +THREAD_ID EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME select * from performance_schema.events_statements_summary_by_user_by_event_name; -USER EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED +USER EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME select * from performance_schema.events_statements_summary_global_by_event_name; -EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED +EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME select * from performance_schema.events_waits_current; THREAD_ID EVENT_ID END_EVENT_ID EVENT_NAME SOURCE TIMER_START TIMER_END TIMER_WAIT SPINS OBJECT_SCHEMA OBJECT_NAME INDEX_NAME OBJECT_TYPE OBJECT_INSTANCE_BEGIN NESTING_EVENT_ID NESTING_EVENT_TYPE OPERATION NUMBER_OF_BYTES FLAGS select * from performance_schema.events_waits_history; diff --git a/mysql-test/suite/perfschema/r/statement_digest_charset.result b/mysql-test/suite/perfschema/r/statement_digest_charset.result index 0dc82ee2966..19d60e7420b 100644 --- a/mysql-test/suite/perfschema/r/statement_digest_charset.result +++ b/mysql-test/suite/perfschema/r/statement_digest_charset.result @@ -12,5 +12,5 @@ CREATE TABLE ДОЛЕН_регистър_утф8 (s1 INT); SET NAMES latin1; SELECT * FROM performance_schema.events_statements_summary_by_digest WHERE digest_text LIKE 'XXXYYY%' LIMIT 1; -SCHEMA_NAME DIGEST DIGEST_TEXT COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED FIRST_SEEN LAST_SEEN QUANTILE_95 QUANTILE_99 QUANTILE_999 QUERY_SAMPLE_TEXT QUERY_SAMPLE_SEEN QUERY_SAMPLE_TIMER_WAIT +SCHEMA_NAME DIGEST DIGEST_TEXT COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED SUM_ROWS_DELETED SUM_ROWS_INSERTED SUM_ROWS_UPDATED SUM_CPU_TIME FIRST_SEEN LAST_SEEN QUANTILE_95 QUANTILE_99 QUANTILE_999 QUERY_SAMPLE_TEXT QUERY_SAMPLE_SEEN QUERY_SAMPLE_TIMER_WAIT DROP DATABASE pfs_charset_test; diff --git a/mysql-test/suite/perfschema/r/table_schema.result b/mysql-test/suite/perfschema/r/table_schema.result index b9480901f5a..594e4283d4e 100644 --- a/mysql-test/suite/perfschema/r/table_schema.result +++ b/mysql-test/suite/perfschema/r/table_schema.result @@ -200,6 +200,7 @@ def performance_schema events_statements_current NESTING_EVENT_ID 39 NULL YES bi def performance_schema events_statements_current NESTING_EVENT_TYPE 40 NULL YES enum 11 44 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci enum('TRANSACTION','STATEMENT','STAGE','WAIT') select,insert,update,references NULL def performance_schema events_statements_current NESTING_EVENT_LEVEL 41 NULL YES int NULL NULL 10 0 NULL NULL NULL int select,insert,update,references NULL def performance_schema events_statements_current STATEMENT_ID 42 NULL YES bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL +def performance_schema events_statements_current CPU_TIME 43 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_histogram_by_digest SCHEMA_NAME 1 NULL YES varchar 64 256 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci varchar(64) MUL select,insert,update,references NULL def performance_schema events_statements_histogram_by_digest DIGEST 2 NULL YES varchar 64 256 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci varchar(64) select,insert,update,references NULL def performance_schema events_statements_histogram_by_digest BUCKET_NUMBER 3 NULL NO int NULL NULL 10 0 NULL NULL NULL int unsigned select,insert,update,references NULL @@ -328,6 +329,7 @@ def performance_schema events_statements_summary_by_account_by_event_name SUM_NO def performance_schema events_statements_summary_by_account_by_event_name SUM_ROWS_DELETED 28 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_account_by_event_name SUM_ROWS_INSERTED 29 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_account_by_event_name SUM_ROWS_UPDATED 30 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL +def performance_schema events_statements_summary_by_account_by_event_name SUM_CPU_TIME 31 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_digest SCHEMA_NAME 1 NULL YES varchar 64 256 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci varchar(64) MUL select,insert,update,references NULL def performance_schema events_statements_summary_by_digest DIGEST 2 NULL YES varchar 64 256 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci varchar(64) select,insert,update,references NULL def performance_schema events_statements_summary_by_digest DIGEST_TEXT 3 NULL YES longtext 4294967295 4294967295 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci longtext select,insert,update,references NULL @@ -358,14 +360,15 @@ def performance_schema events_statements_summary_by_digest SUM_NO_GOOD_INDEX_USE def performance_schema events_statements_summary_by_digest SUM_ROWS_DELETED 28 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_digest SUM_ROWS_INSERTED 29 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_digest SUM_ROWS_UPDATED 30 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL -def performance_schema events_statements_summary_by_digest FIRST_SEEN 31 0000-00-00 00:00:00.000000 NO timestamp NULL NULL NULL NULL 6 NULL NULL timestamp(6) select,insert,update,references NULL -def performance_schema events_statements_summary_by_digest LAST_SEEN 32 0000-00-00 00:00:00.000000 NO timestamp NULL NULL NULL NULL 6 NULL NULL timestamp(6) select,insert,update,references NULL -def performance_schema events_statements_summary_by_digest QUANTILE_95 33 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL -def performance_schema events_statements_summary_by_digest QUANTILE_99 34 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL -def performance_schema events_statements_summary_by_digest QUANTILE_999 35 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL -def performance_schema events_statements_summary_by_digest QUERY_SAMPLE_TEXT 36 NULL YES longtext 4294967295 4294967295 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci longtext select,insert,update,references NULL -def performance_schema events_statements_summary_by_digest QUERY_SAMPLE_SEEN 37 0000-00-00 00:00:00.000000 NO timestamp NULL NULL NULL NULL 6 NULL NULL timestamp(6) select,insert,update,references NULL -def performance_schema events_statements_summary_by_digest QUERY_SAMPLE_TIMER_WAIT 38 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL +def performance_schema events_statements_summary_by_digest SUM_CPU_TIME 31 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL +def performance_schema events_statements_summary_by_digest FIRST_SEEN 32 0000-00-00 00:00:00.000000 NO timestamp NULL NULL NULL NULL 6 NULL NULL timestamp(6) select,insert,update,references NULL +def performance_schema events_statements_summary_by_digest LAST_SEEN 33 0000-00-00 00:00:00.000000 NO timestamp NULL NULL NULL NULL 6 NULL NULL timestamp(6) select,insert,update,references NULL +def performance_schema events_statements_summary_by_digest QUANTILE_95 34 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL +def performance_schema events_statements_summary_by_digest QUANTILE_99 35 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL +def performance_schema events_statements_summary_by_digest QUANTILE_999 36 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL +def performance_schema events_statements_summary_by_digest QUERY_SAMPLE_TEXT 37 NULL YES longtext 4294967295 4294967295 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci longtext select,insert,update,references NULL +def performance_schema events_statements_summary_by_digest QUERY_SAMPLE_SEEN 38 0000-00-00 00:00:00.000000 NO timestamp NULL NULL NULL NULL 6 NULL NULL timestamp(6) select,insert,update,references NULL +def performance_schema events_statements_summary_by_digest QUERY_SAMPLE_TIMER_WAIT 39 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_host_by_event_name HOST 1 NULL YES char 255 255 NULL NULL NULL ascii ascii_general_ci char(255) MUL select,insert,update,references NULL def performance_schema events_statements_summary_by_host_by_event_name EVENT_NAME 2 NULL NO varchar 128 512 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci varchar(128) select,insert,update,references NULL def performance_schema events_statements_summary_by_host_by_event_name COUNT_STAR 3 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL @@ -395,6 +398,7 @@ def performance_schema events_statements_summary_by_host_by_event_name SUM_NO_GO def performance_schema events_statements_summary_by_host_by_event_name SUM_ROWS_DELETED 27 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_host_by_event_name SUM_ROWS_INSERTED 28 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_host_by_event_name SUM_ROWS_UPDATED 29 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL +def performance_schema events_statements_summary_by_host_by_event_name SUM_CPU_TIME 30 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_program OBJECT_TYPE 1 NULL NO enum 9 36 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci enum('EVENT','FUNCTION','PROCEDURE','TABLE','TRIGGER') PRI select,insert,update,references NULL def performance_schema events_statements_summary_by_program OBJECT_SCHEMA 2 NULL NO varchar 64 256 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci varchar(64) PRI select,insert,update,references NULL def performance_schema events_statements_summary_by_program OBJECT_NAME 3 NULL NO varchar 64 256 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci varchar(64) PRI select,insert,update,references NULL @@ -430,6 +434,7 @@ def performance_schema events_statements_summary_by_program SUM_NO_GOOD_INDEX_US def performance_schema events_statements_summary_by_program SUM_ROWS_DELETED 33 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_program SUM_ROWS_INSERTED 34 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_program SUM_ROWS_UPDATED 35 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL +def performance_schema events_statements_summary_by_program SUM_CPU_TIME 36 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_thread_by_event_name THREAD_ID 1 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned PRI select,insert,update,references NULL def performance_schema events_statements_summary_by_thread_by_event_name EVENT_NAME 2 NULL NO varchar 128 512 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci varchar(128) PRI select,insert,update,references NULL def performance_schema events_statements_summary_by_thread_by_event_name COUNT_STAR 3 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL @@ -459,6 +464,7 @@ def performance_schema events_statements_summary_by_thread_by_event_name SUM_NO_ def performance_schema events_statements_summary_by_thread_by_event_name SUM_ROWS_DELETED 27 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_thread_by_event_name SUM_ROWS_INSERTED 28 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_thread_by_event_name SUM_ROWS_UPDATED 29 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL +def performance_schema events_statements_summary_by_thread_by_event_name SUM_CPU_TIME 30 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_user_by_event_name USER 1 NULL YES char 80 320 NULL NULL NULL utf8mb4 utf8mb4_bin char(80) MUL select,insert,update,references NULL def performance_schema events_statements_summary_by_user_by_event_name EVENT_NAME 2 NULL NO varchar 128 512 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci varchar(128) select,insert,update,references NULL def performance_schema events_statements_summary_by_user_by_event_name COUNT_STAR 3 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL @@ -488,6 +494,7 @@ def performance_schema events_statements_summary_by_user_by_event_name SUM_NO_GO def performance_schema events_statements_summary_by_user_by_event_name SUM_ROWS_DELETED 27 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_user_by_event_name SUM_ROWS_INSERTED 28 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_by_user_by_event_name SUM_ROWS_UPDATED 29 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL +def performance_schema events_statements_summary_by_user_by_event_name SUM_CPU_TIME 30 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_global_by_event_name EVENT_NAME 1 NULL NO varchar 128 512 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci varchar(128) PRI select,insert,update,references NULL def performance_schema events_statements_summary_global_by_event_name COUNT_STAR 2 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_global_by_event_name SUM_TIMER_WAIT 3 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL @@ -516,6 +523,7 @@ def performance_schema events_statements_summary_global_by_event_name SUM_NO_GOO def performance_schema events_statements_summary_global_by_event_name SUM_ROWS_DELETED 26 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_global_by_event_name SUM_ROWS_INSERTED 27 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_statements_summary_global_by_event_name SUM_ROWS_UPDATED 28 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL +def performance_schema events_statements_summary_global_by_event_name SUM_CPU_TIME 29 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema events_transactions_current THREAD_ID 1 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned PRI select,insert,update,references NULL def performance_schema events_transactions_current EVENT_ID 2 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned PRI select,insert,update,references NULL def performance_schema events_transactions_current END_EVENT_ID 3 NULL YES bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL @@ -992,6 +1000,7 @@ def performance_schema prepared_statements_instances SUM_NO_GOOD_INDEX_USED 35 N def performance_schema prepared_statements_instances SUM_ROWS_DELETED 36 NULL YES bigint NULL NULL 19 0 NULL NULL NULL bigint select,insert,update,references NULL def performance_schema prepared_statements_instances SUM_ROWS_INSERTED 37 NULL YES bigint NULL NULL 19 0 NULL NULL NULL bigint select,insert,update,references NULL def performance_schema prepared_statements_instances SUM_ROWS_UPDATED 38 NULL YES bigint NULL NULL 19 0 NULL NULL NULL bigint select,insert,update,references NULL +def performance_schema prepared_statements_instances SUM_CPU_TIME 39 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint unsigned select,insert,update,references NULL def performance_schema replication_applier_configuration CHANNEL_NAME 1 NULL NO char 64 256 NULL NULL NULL utf8mb4 utf8mb4_0900_ai_ci char(64) PRI select,insert,update,references NULL def performance_schema replication_applier_configuration DESIRED_DELAY 2 NULL NO int NULL NULL 10 0 NULL NULL NULL int select,insert,update,references NULL def performance_schema replication_applier_configuration PRIVILEGE_CHECKS_USER 3 NULL YES text 65535 65535 NULL NULL NULL utf8 utf8_bin text select,insert,update,references User name for the security context of the applier. NULL diff --git a/mysql-test/suite/perfschema/t/dd_version_check.test b/mysql-test/suite/perfschema/t/dd_version_check.test index 247c7fb8364..5ef8c9e0976 100644 --- a/mysql-test/suite/perfschema/t/dd_version_check.test +++ b/mysql-test/suite/perfschema/t/dd_version_check.test @@ -93,6 +93,10 @@ insert into test.pfs_published_schema values("MySQL 8.0.20-003", "e06eb76aa3f817a3b4dc5e82d9b1de9539d8e069172bb55a216e97de40c5052f"); +insert into test.pfs_published_schema + values("MySQL 8.0.20-004", + "7e1e6970af9a47470bc03348b71b03519c8389246ef5107cccd3eed865f92641"); + create table test.pfs_check_table (id int NOT NULL AUTO_INCREMENT, t text NOT NULL, diff --git a/mysys/psi_noop.cc b/mysys/psi_noop.cc index 562b3367b78..0fd739a0501 100644 --- a/mysys/psi_noop.cc +++ b/mysys/psi_noop.cc @@ -638,6 +638,10 @@ static void set_statement_lock_time_noop(PSI_statement_locker *, ulonglong) { return; } +static void set_statement_cpu_time_noop(PSI_statement_locker *, ulonglong) { + return; +} + static void set_statement_rows_sent_noop(PSI_statement_locker *, ulonglong) { return; } @@ -772,6 +776,7 @@ static PSI_statement_service_t psi_statement_noop = { set_statement_text_noop, set_statement_query_id_noop, set_statement_lock_time_noop, + set_statement_cpu_time_noop, set_statement_rows_sent_noop, set_statement_rows_examined_noop, inc_statement_rows_deleted_noop, diff --git a/scripts/sys_schema/procedures/statement_performance_analyzer.sql b/scripts/sys_schema/procedures/statement_performance_analyzer.sql index 514a5a49984..376c37956f4 100644 --- a/scripts/sys_schema/procedures/statement_performance_analyzer.sql +++ b/scripts/sys_schema/procedures/statement_performance_analyzer.sql @@ -431,6 +431,7 @@ BEGIN `SUM_ROWS_DELETED` bigint unsigned NOT NULL, `SUM_ROWS_INSERTED` bigint unsigned NOT NULL, `SUM_ROWS_UPDATED` bigint unsigned NOT NULL, + `SUM_CPU_TIME` bigint unsigned NOT NULL, `FIRST_SEEN` timestamp(6) NULL DEFAULT NULL, `LAST_SEEN` timestamp(6) NULL DEFAULT NULL, `QUANTILE_95` bigint unsigned NOT NULL, @@ -519,6 +520,7 @@ SELECT `d_end`.`SCHEMA_NAME`, `d_end`.`SUM_ROWS_DELETED`-IFNULL(`d_start`.`SUM_ROWS_DELETED`, 0) AS ''SUM_ROWS_DELETED'', `d_end`.`SUM_ROWS_INSERTED`-IFNULL(`d_start`.`SUM_ROWS_INSERTED`, 0) AS ''SUM_ROWS_INSERTED'', `d_end`.`SUM_ROWS_UPDATED`-IFNULL(`d_start`.`SUM_ROWS_UPDATED`, 0) AS ''SUM_ROWS_UPDATED'', + `d_end`.`SUM_CPU_TIME`-IFNULL(`d_start`.`SUM_CPU_TIME`, 0) AS ''SUM_CPU_TIME'', `d_end`.`FIRST_SEEN`, `d_end`.`LAST_SEEN`, `d_end`.`QUANTILE_95`, diff --git a/sql/sql_class.cc b/sql/sql_class.cc index e6365e132cd..b5c4bd98d46 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -489,6 +489,7 @@ THD::THD(bool enable_plugins) lex->thd = nullptr; lex->set_current_select(nullptr); utime_after_lock = 0L; + set_timespec(&start_cputime, 0); current_linfo = nullptr; slave_thread = false; memset(&variables, 0, sizeof(variables)); @@ -3165,11 +3166,31 @@ void THD::set_time() { else my_micro_time_to_timeval(start_utime, &start_time); + if (clock_gettime(CLOCK_THREAD_CPUTIME_ID, &start_cputime) != 0) { + set_timespec(&start_cputime, 0); + } #ifdef HAVE_PSI_THREAD_INTERFACE PSI_THREAD_CALL(set_thread_start_time)(query_start_in_secs()); #endif } +/* + Records the CPU time spent since start_cputime, and records this into + perfschema via MYSQL_SET_STATEMENT_CPU_TIME. +*/ +void THD::set_cpu_time() { + struct timespec end_cputime; + set_timespec(&end_cputime, 0); + if (diff_timespec(&end_cputime, &start_cputime) != 0) { + if (clock_gettime(CLOCK_THREAD_CPUTIME_ID, &end_cputime) == 0) { + MYSQL_SET_STATEMENT_CPU_TIME( + m_statement_psi, diff_timespec(&end_cputime, &start_cputime) / 1000); + } else { + MYSQL_SET_STATEMENT_CPU_TIME(m_statement_psi, 0); + } + } +} + void THD::set_time_after_lock() { /* If mysql_lock_tables() is called multiple times, diff --git a/sql/sql_class.h b/sql/sql_class.h index 5d02d992a0b..c63fa8ac20d 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -61,6 +61,7 @@ #include "my_psi_config.h" #include "my_sqlcommand.h" #include "my_sys.h" +#include "my_systime.h" #include "my_table_map.h" #include "my_thread_local.h" #include "mysql/components/services/my_thread_bits.h" @@ -1347,6 +1348,7 @@ class THD : public MDL_context_owner, struct timeval start_time; struct timeval user_time; ulonglong start_utime, utime_after_lock, pre_exec_time; + struct timespec start_cputime; /* record the semisync ack time */ ulonglong semisync_ack_time = 0; /* record the engine commit time */ @@ -2844,6 +2846,7 @@ class THD : public MDL_context_owner, time_t query_start_in_secs() const { return start_time.tv_sec; } timeval query_start_timeval_trunc(uint decimals); void set_time(); + void set_cpu_time(); void set_time(const struct timeval *t) { user_time = *t; set_time(); diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index e670a589b47..f6d963223be 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1960,6 +1960,7 @@ bool dispatch_command(THD *thd, const COM_DATA *com_data, } /* PSI end */ + thd->set_cpu_time(); MYSQL_END_STATEMENT(thd->m_statement_psi, thd->get_stmt_da()); thd->m_statement_psi = nullptr; thd->m_digest = nullptr; @@ -2357,6 +2358,7 @@ done: thd->lex->sql_command = SQLCOM_END; /* Performance Schema Interface instrumentation, end */ + thd->set_cpu_time(); MYSQL_END_STATEMENT(thd->m_statement_psi, thd->get_stmt_da()); thd->m_statement_psi = nullptr; thd->m_digest = nullptr; diff --git a/storage/perfschema/ha_perfschema.cc b/storage/perfschema/ha_perfschema.cc index aac8bea3973..616c9e0badd 100644 --- a/storage/perfschema/ha_perfschema.cc +++ b/storage/perfschema/ha_perfschema.cc @@ -90,7 +90,7 @@ */ static_assert((PFS_DD_VERSION <= MYSQL_VERSION_ID) || - ((PFS_DD_VERSION == 80020003) && (MYSQL_VERSION_ID == 80020)), + ((PFS_DD_VERSION == 80020004) && (MYSQL_VERSION_ID == 80020)), "This release can not use a version number from the future"); class KEY; diff --git a/storage/perfschema/pfs.cc b/storage/perfschema/pfs.cc index e2135fc0134..bec3a9bbab9 100644 --- a/storage/perfschema/pfs.cc +++ b/storage/perfschema/pfs.cc @@ -5843,6 +5843,7 @@ PSI_statement_locker *pfs_get_thread_statement_locker_v2( pfs->m_timer_start = 0; pfs->m_timer_end = 0; pfs->m_lock_time = 0; + pfs->m_cpu_time = 0; pfs->m_current_schema_name_length = 0; pfs->m_sqltext_length = 0; pfs->m_sqltext_truncated = false; @@ -5953,6 +5954,7 @@ PSI_statement_locker *pfs_get_thread_statement_locker_v2( state->m_flags = flags; state->m_lock_time = 0; + state->m_cpu_time = 0; state->m_rows_sent = 0; state->m_rows_examined = 0; state->m_rows_deleted = 0; @@ -6171,6 +6173,11 @@ void pfs_set_statement_lock_time_v2(PSI_statement_locker *locker, SET_STATEMENT_ATTR_BODY(locker, m_lock_time, count); } +void pfs_set_statement_cpu_time_v2(PSI_statement_locker *locker, + ulonglong count) { + SET_STATEMENT_ATTR_BODY(locker, m_cpu_time, count); +} + void pfs_set_statement_rows_sent_v2(PSI_statement_locker *locker, ulonglong count) { SET_STATEMENT_ATTR_BODY(locker, m_rows_sent, count); @@ -6395,6 +6402,7 @@ void pfs_end_statement_v2(PSI_statement_locker *locker, void *stmt_da) { } stat->m_lock_time += state->m_lock_time; + stat->m_cpu_time += state->m_cpu_time; stat->m_rows_sent += state->m_rows_sent; stat->m_rows_examined += state->m_rows_examined; stat->m_rows_deleted += state->m_rows_deleted; @@ -6476,6 +6484,7 @@ void pfs_end_statement_v2(PSI_statement_locker *locker, void *stmt_da) { } digest_stat->m_stat.m_lock_time += state->m_lock_time; + digest_stat->m_stat.m_cpu_time += state->m_cpu_time; digest_stat->m_stat.m_rows_sent += state->m_rows_sent; digest_stat->m_stat.m_rows_examined += state->m_rows_examined; digest_stat->m_stat.m_rows_deleted += state->m_rows_deleted; @@ -6517,6 +6526,7 @@ void pfs_end_statement_v2(PSI_statement_locker *locker, void *stmt_da) { } sub_stmt_stat->m_lock_time += state->m_lock_time; + sub_stmt_stat->m_cpu_time += state->m_cpu_time; sub_stmt_stat->m_rows_sent += state->m_rows_sent; sub_stmt_stat->m_rows_examined += state->m_rows_examined; sub_stmt_stat->m_rows_deleted += state->m_rows_deleted; @@ -6562,6 +6572,7 @@ void pfs_end_statement_v2(PSI_statement_locker *locker, void *stmt_da) { } prepared_stmt_stat->m_lock_time += state->m_lock_time; + prepared_stmt_stat->m_cpu_time += state->m_cpu_time; prepared_stmt_stat->m_rows_sent += state->m_rows_sent; prepared_stmt_stat->m_rows_examined += state->m_rows_examined; prepared_stmt_stat->m_rows_deleted += state->m_rows_deleted; @@ -8260,6 +8271,7 @@ PSI_statement_service_v2 pfs_statement_service_v2 = { pfs_set_statement_text_v2, pfs_set_statement_query_id_v2, pfs_set_statement_lock_time_v2, + pfs_set_statement_cpu_time_v2, pfs_set_statement_rows_sent_v2, pfs_set_statement_rows_examined_v2, pfs_inc_statement_rows_deleted_v2, @@ -8301,6 +8313,7 @@ SERVICE_IMPLEMENTATION(performance_schema, psi_statement_v1) = { pfs_start_statement_v2, pfs_set_statement_text_v2, pfs_set_statement_lock_time_v2, + pfs_set_statement_cpu_time_v2, pfs_set_statement_rows_sent_v2, pfs_set_statement_rows_examined_v2, pfs_inc_statement_rows_deleted_v2, @@ -8343,6 +8356,7 @@ SERVICE_IMPLEMENTATION(performance_schema, psi_statement_v2) = { pfs_set_statement_text_v2, pfs_set_statement_query_id_v2, pfs_set_statement_lock_time_v2, + pfs_set_statement_cpu_time_v2, pfs_set_statement_rows_sent_v2, pfs_set_statement_rows_examined_v2, pfs_inc_statement_rows_deleted_v2, diff --git a/storage/perfschema/pfs_dd_version.h b/storage/perfschema/pfs_dd_version.h index 908e71ff5a1..7909a945e88 100644 --- a/storage/perfschema/pfs_dd_version.h +++ b/storage/perfschema/pfs_dd_version.h @@ -181,9 +181,12 @@ - table_statistics_per_table added. - The last three digits reprents Facebook specific MySQL Schema changes. - Version published is now 80020-003. i.e. 8.0.20 Facebook schema change no. 3. + 80020-004: + -add cpu time to statement statistics + + Version published is now 80020-004. i.e. 8.0.20 Facebook schema change no. 4. */ -static const uint PFS_DD_VERSION = 80020003; +static const uint PFS_DD_VERSION = 80020004; #endif /* PFS_DD_VERSION_H */ diff --git a/storage/perfschema/pfs_events_statements.h b/storage/perfschema/pfs_events_statements.h index db687067c19..afeda7330e8 100644 --- a/storage/perfschema/pfs_events_statements.h +++ b/storage/perfschema/pfs_events_statements.h @@ -66,6 +66,9 @@ struct PFS_events_statements : public PFS_events { /** Locked time. */ ulonglong m_lock_time; + /** CPU time. */ + ulonglong m_cpu_time; + /** Diagnostics area, message text. */ char m_message_text[MYSQL_ERRMSG_SIZE + 1]; /** Diagnostics area, error number. */ diff --git a/storage/perfschema/pfs_stat.h b/storage/perfschema/pfs_stat.h index 1888a997cb1..a0f34b72f0a 100644 --- a/storage/perfschema/pfs_stat.h +++ b/storage/perfschema/pfs_stat.h @@ -378,6 +378,7 @@ struct PFS_statement_stat { ulonglong m_warning_count{0}; ulonglong m_rows_affected{0}; ulonglong m_lock_time{0}; + ulonglong m_cpu_time{0}; ulonglong m_rows_sent{0}; ulonglong m_rows_examined{0}; ulonglong m_rows_deleted{0}; @@ -413,6 +414,7 @@ struct PFS_statement_stat { m_warning_count += stat->m_warning_count; m_rows_affected += stat->m_rows_affected; m_lock_time += stat->m_lock_time; + m_cpu_time += stat->m_cpu_time; m_rows_sent += stat->m_rows_sent; m_rows_examined += stat->m_rows_examined; m_rows_deleted += stat->m_rows_deleted; diff --git a/storage/perfschema/table_esms_by_account_by_event_name.cc b/storage/perfschema/table_esms_by_account_by_event_name.cc index 5c9f564305e..f786fcaaeaa 100644 --- a/storage/perfschema/table_esms_by_account_by_event_name.cc +++ b/storage/perfschema/table_esms_by_account_by_event_name.cc @@ -80,6 +80,7 @@ Plugin_table table_esms_by_account_by_event_name::m_table_def( " SUM_ROWS_DELETED BIGINT unsigned not null,\n" " SUM_ROWS_INSERTED BIGINT unsigned not null,\n" " SUM_ROWS_UPDATED BIGINT unsigned not null,\n" + " SUM_CPU_TIME BIGINT unsigned not null,\n" " UNIQUE KEY `ACCOUNT` (USER, HOST, EVENT_NAME) USING HASH\n", /* Options */ " ENGINE=PERFORMANCE_SCHEMA", diff --git a/storage/perfschema/table_esms_by_digest.cc b/storage/perfschema/table_esms_by_digest.cc index 1e4be0006f4..9d67c1a4a2c 100644 --- a/storage/perfschema/table_esms_by_digest.cc +++ b/storage/perfschema/table_esms_by_digest.cc @@ -82,6 +82,7 @@ Plugin_table table_esms_by_digest::m_table_def( " SUM_ROWS_DELETED BIGINT unsigned not null,\n" " SUM_ROWS_INSERTED BIGINT unsigned not null,\n" " SUM_ROWS_UPDATED BIGINT unsigned not null,\n" + " SUM_CPU_TIME BIGINT unsigned not null,\n" " FIRST_SEEN TIMESTAMP(6) NOT NULL default 0,\n" " LAST_SEEN TIMESTAMP(6) NOT NULL default 0,\n" " QUANTILE_95 BIGINT unsigned not null,\n" @@ -313,22 +314,22 @@ int table_esms_by_digest::read_row_values(TABLE *table, unsigned char *buf, case 2: /* DIGEST_TEXT */ m_row.m_digest.set_field(f->field_index, f); break; - case 30: /* FIRST_SEEN */ + case 31: /* FIRST_SEEN */ set_field_timestamp(f, m_row.m_first_seen); break; - case 31: /* LAST_SEEN */ + case 32: /* LAST_SEEN */ set_field_timestamp(f, m_row.m_last_seen); break; - case 32: /* QUANTILE_95 */ + case 33: /* QUANTILE_95 */ set_field_ulonglong(f, m_row.m_p95); break; - case 33: /* QUANTILE_99 */ + case 34: /* QUANTILE_99 */ set_field_ulonglong(f, m_row.m_p99); break; - case 34: /* QUANTILE_999 */ + case 35: /* QUANTILE_999 */ set_field_ulonglong(f, m_row.m_p999); break; - case 35: /* QUERY_SAMPLE_TEXT */ + case 36: /* QUERY_SAMPLE_TEXT */ if (m_row.m_query_sample.length()) set_field_text(f, m_row.m_query_sample.ptr(), m_row.m_query_sample.length(), @@ -337,10 +338,10 @@ int table_esms_by_digest::read_row_values(TABLE *table, unsigned char *buf, f->set_null(); } break; - case 36: /* QUERY_SAMPLE_SEEN */ + case 37: /* QUERY_SAMPLE_SEEN */ set_field_timestamp(f, m_row.m_query_sample_seen); break; - case 37: /* QUERY_SAMPLE_TIMER_WAIT */ + case 38: /* QUERY_SAMPLE_TIMER_WAIT */ set_field_ulonglong(f, m_row.m_query_sample_timer_wait); break; default: /* 3, ... COUNT/SUM/MIN/AVG/MAX */ diff --git a/storage/perfschema/table_esms_by_host_by_event_name.cc b/storage/perfschema/table_esms_by_host_by_event_name.cc index c7b394fd929..2327c968ed5 100644 --- a/storage/perfschema/table_esms_by_host_by_event_name.cc +++ b/storage/perfschema/table_esms_by_host_by_event_name.cc @@ -81,6 +81,7 @@ Plugin_table table_esms_by_host_by_event_name::m_table_def( " SUM_ROWS_DELETED BIGINT unsigned not null,\n" " SUM_ROWS_INSERTED BIGINT unsigned not null,\n" " SUM_ROWS_UPDATED BIGINT unsigned not null,\n" + " SUM_CPU_TIME BIGINT unsigned not null,\n" " UNIQUE KEY (HOST, EVENT_NAME) USING HASH\n", /* Options */ " ENGINE=PERFORMANCE_SCHEMA", diff --git a/storage/perfschema/table_esms_by_program.cc b/storage/perfschema/table_esms_by_program.cc index 09e5b831d6b..4fc1b353713 100644 --- a/storage/perfschema/table_esms_by_program.cc +++ b/storage/perfschema/table_esms_by_program.cc @@ -86,6 +86,7 @@ Plugin_table table_esms_by_program::m_table_def( " SUM_ROWS_DELETED BIGINT unsigned not null,\n" " SUM_ROWS_INSERTED BIGINT unsigned not null,\n" " SUM_ROWS_UPDATED BIGINT unsigned not null,\n" + " SUM_CPU_TIME BIGINT unsigned not null,\n" " PRIMARY KEY (OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME) USING HASH\n", /* Options */ " ENGINE=PERFORMANCE_SCHEMA", diff --git a/storage/perfschema/table_esms_by_thread_by_event_name.cc b/storage/perfschema/table_esms_by_thread_by_event_name.cc index 47a60457a06..0685bb73654 100644 --- a/storage/perfschema/table_esms_by_thread_by_event_name.cc +++ b/storage/perfschema/table_esms_by_thread_by_event_name.cc @@ -78,6 +78,7 @@ Plugin_table table_esms_by_thread_by_event_name::m_table_def( " SUM_ROWS_DELETED BIGINT unsigned not null,\n" " SUM_ROWS_INSERTED BIGINT unsigned not null,\n" " SUM_ROWS_UPDATED BIGINT unsigned not null,\n" + " SUM_CPU_TIME BIGINT unsigned not null,\n" " PRIMARY KEY (THREAD_ID, EVENT_NAME) USING HASH\n", /* Options */ " ENGINE=PERFORMANCE_SCHEMA", diff --git a/storage/perfschema/table_esms_by_user_by_event_name.cc b/storage/perfschema/table_esms_by_user_by_event_name.cc index 266202e3e2e..42fdca41e8c 100644 --- a/storage/perfschema/table_esms_by_user_by_event_name.cc +++ b/storage/perfschema/table_esms_by_user_by_event_name.cc @@ -79,6 +79,7 @@ Plugin_table table_esms_by_user_by_event_name::m_table_def( " SUM_ROWS_DELETED BIGINT unsigned not null,\n" " SUM_ROWS_INSERTED BIGINT unsigned not null,\n" " SUM_ROWS_UPDATED BIGINT unsigned not null,\n" + " SUM_CPU_TIME BIGINT unsigned not null,\n" " UNIQUE KEY (user, event_name) USING HASH\n", /* Options */ " ENGINE=PERFORMANCE_SCHEMA", diff --git a/storage/perfschema/table_esms_global_by_event_name.cc b/storage/perfschema/table_esms_global_by_event_name.cc index 79760e8b47e..9f5259e3dd8 100644 --- a/storage/perfschema/table_esms_global_by_event_name.cc +++ b/storage/perfschema/table_esms_global_by_event_name.cc @@ -78,6 +78,7 @@ Plugin_table table_esms_global_by_event_name::m_table_def( " SUM_ROWS_DELETED BIGINT unsigned not null,\n" " SUM_ROWS_INSERTED BIGINT unsigned not null,\n" " SUM_ROWS_UPDATED BIGINT unsigned not null,\n" + " SUM_CPU_TIME BIGINT unsigned not null,\n" " PRIMARY KEY (EVENT_NAME) USING HASH\n", /* Options */ " ENGINE=PERFORMANCE_SCHEMA", diff --git a/storage/perfschema/table_events_statements.cc b/storage/perfschema/table_events_statements.cc index 6aafe8f37f2..c59cc3a4471 100644 --- a/storage/perfschema/table_events_statements.cc +++ b/storage/perfschema/table_events_statements.cc @@ -92,6 +92,7 @@ Plugin_table table_events_statements_current::m_table_def( " NESTING_EVENT_TYPE ENUM('TRANSACTION', 'STATEMENT', 'STAGE', 'WAIT'),\n" " NESTING_EVENT_LEVEL INTEGER,\n" " STATEMENT_ID BIGINT unsigned,\n" + " CPU_TIME BIGINT unsigned not null,\n" " PRIMARY KEY (THREAD_ID, EVENT_ID) USING HASH\n", /* Options */ " ENGINE=PERFORMANCE_SCHEMA", @@ -315,6 +316,7 @@ int table_events_statements_common::make_row_part_1( &m_row.m_timer_start, &m_row.m_timer_end, &m_row.m_timer_wait); m_row.m_lock_time = statement->m_lock_time * MICROSEC_TO_PICOSEC; + m_row.m_cpu_time = statement->m_cpu_time * MICROSEC_TO_PICOSEC; m_row.m_name = klass->m_name; m_row.m_name_length = klass->m_name_length; @@ -626,6 +628,13 @@ int table_events_statements_common::read_row_values(TABLE *table, f->set_null(); } break; + case 42: /* CPU_TIME */ + if (m_row.m_cpu_time != 0) { + set_field_ulonglong(f, m_row.m_cpu_time); + } else { + f->set_null(); + } + break; default: DBUG_ASSERT(false); } diff --git a/storage/perfschema/table_events_statements.h b/storage/perfschema/table_events_statements.h index 134de00cc83..6062405846e 100644 --- a/storage/perfschema/table_events_statements.h +++ b/storage/perfschema/table_events_statements.h @@ -95,6 +95,8 @@ struct row_events_statements { ulonglong m_timer_wait; /** Column LOCK_TIME. */ ulonglong m_lock_time; + /** Column CPU_TIME. */ + ulonglong m_cpu_time; /** Column SOURCE. */ char m_source[COL_SOURCE_SIZE]; /** Length in bytes of @c m_source. */ diff --git a/storage/perfschema/table_helper.cc b/storage/perfschema/table_helper.cc index 2b03803ae01..1974ae95a3d 100644 --- a/storage/perfschema/table_helper.cc +++ b/storage/perfschema/table_helper.cc @@ -1051,6 +1051,9 @@ void PFS_statement_stat_row::set_field(uint index, Field *f) { case 26: /* SUM_ROWS_UPDATED */ set_field_ulonglong(f, m_rows_updated); break; + case 27: /* SUM_CPU_TIME */ + set_field_ulonglong(f, m_cpu_time); + break; default: DBUG_ASSERT(false); break; diff --git a/storage/perfschema/table_helper.h b/storage/perfschema/table_helper.h index 0421f8ac774..122e15f5d16 100644 --- a/storage/perfschema/table_helper.h +++ b/storage/perfschema/table_helper.h @@ -870,6 +870,7 @@ struct PFS_statement_stat_row { ulonglong m_warning_count; ulonglong m_rows_affected; ulonglong m_lock_time; + ulonglong m_cpu_time; ulonglong m_rows_sent; ulonglong m_rows_deleted; ulonglong m_rows_inserted; @@ -897,6 +898,7 @@ struct PFS_statement_stat_row { m_error_count = stat->m_error_count; m_warning_count = stat->m_warning_count; m_lock_time = stat->m_lock_time * MICROSEC_TO_PICOSEC; + m_cpu_time = stat->m_cpu_time * MICROSEC_TO_PICOSEC; m_rows_affected = stat->m_rows_affected; m_rows_sent = stat->m_rows_sent; m_rows_examined = stat->m_rows_examined; @@ -922,6 +924,7 @@ struct PFS_statement_stat_row { m_error_count = 0; m_warning_count = 0; m_lock_time = 0; + m_cpu_time = 0; m_rows_affected = 0; m_rows_sent = 0; m_rows_examined = 0; diff --git a/storage/perfschema/table_prepared_stmt_instances.cc b/storage/perfschema/table_prepared_stmt_instances.cc index 58287da285a..825977700c0 100644 --- a/storage/perfschema/table_prepared_stmt_instances.cc +++ b/storage/perfschema/table_prepared_stmt_instances.cc @@ -89,6 +89,7 @@ Plugin_table table_prepared_stmt_instances::m_table_def( " SUM_ROWS_DELETED bigint(20) null,\n" " SUM_ROWS_INSERTED bigint(20) null,\n" " SUM_ROWS_UPDATED bigint(20) null,\n" + " SUM_CPU_TIME BIGINT unsigned not null,\n" " PRIMARY KEY (OBJECT_INSTANCE_BEGIN) USING HASH,\n" " UNIQUE KEY (OWNER_THREAD_ID, OWNER_EVENT_ID) USING HASH,\n" " KEY (STATEMENT_ID) USING HASH,\n"