Bug#55416 Renaming of performance_schema tables for 5.5
Removed table SETUP_OBJECTS. Renamed table PROCESSLIST to THREADS. Renamed table EVENTS_WAITS_SUMMARY_BY_EVENT_NAME to EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME. Adjusted Makefiles, code and tests accordingly.
This commit is contained in:
parent
7b3ea8fef8
commit
7dd4600850
@ -25,17 +25,17 @@ update performance_schema.SETUP_CONSUMERS set enabled='YES';
|
||||
|
||||
connect (con1, localhost, root, , );
|
||||
|
||||
let $con1_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
|
||||
let $con1_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID in (select connection_id())`;
|
||||
|
||||
connect (con2, localhost, root, , );
|
||||
|
||||
let $con2_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
|
||||
let $con2_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID in (select connection_id())`;
|
||||
|
||||
connect (con3, localhost, root, , );
|
||||
|
||||
let $con3_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
|
||||
let $con3_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID in (select connection_id())`;
|
||||
|
||||
connection default;
|
||||
@ -49,6 +49,6 @@ prepare stmt_dump_events from
|
||||
where thread_id=? order by event_id;";
|
||||
|
||||
prepare stmt_dump_thread from
|
||||
"select name from performance_schema.PROCESSLIST where thread_id=? ;";
|
||||
"select name from performance_schema.THREADS where thread_id=? ;";
|
||||
--enable_query_log
|
||||
|
||||
|
@ -29,20 +29,19 @@ select * from performance_schema.COND_INSTANCES;
|
||||
select * from performance_schema.EVENTS_WAITS_CURRENT;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_INSTANCES;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.MUTEX_INSTANCES;
|
||||
select * from performance_schema.PERFORMANCE_TIMERS;
|
||||
select * from performance_schema.PROCESSLIST;
|
||||
select * from performance_schema.RWLOCK_INSTANCES;
|
||||
select * from performance_schema.SETUP_CONSUMERS;
|
||||
select * from performance_schema.SETUP_INSTRUMENTS;
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
select * from performance_schema.SETUP_TIMERS;
|
||||
select * from performance_schema.THREADS;
|
||||
--enable_result_log
|
||||
|
||||
# This has a stable output, printing the result:
|
||||
|
@ -4,7 +4,7 @@ update performance_schema.SETUP_INSTRUMENTS set enabled = 'NO';
|
||||
update performance_schema.SETUP_CONSUMERS set enabled = 'NO';
|
||||
truncate table performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
truncate table performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
truncate table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
update performance_schema.SETUP_CONSUMERS set enabled = 'YES';
|
||||
@ -49,14 +49,14 @@ OR @dump_all;
|
||||
EVENT_NAME SUM_NUMBER_OF_BYTES_WRITE SUM(i.SUM_NUMBER_OF_BYTES_WRITE)
|
||||
"Verifying waits aggregate consistency (instance)"
|
||||
SELECT EVENT_NAME, e.SUM_TIMER_WAIT, SUM(i.SUM_TIMER_WAIT)
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
|
||||
JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
|
||||
GROUP BY EVENT_NAME
|
||||
HAVING (e.SUM_TIMER_WAIT < SUM(i.SUM_TIMER_WAIT))
|
||||
OR @dump_all;
|
||||
EVENT_NAME SUM_TIMER_WAIT SUM(i.SUM_TIMER_WAIT)
|
||||
SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(i.MIN_TIMER_WAIT)
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
|
||||
JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
|
||||
GROUP BY EVENT_NAME
|
||||
HAVING (e.MIN_TIMER_WAIT > MIN(i.MIN_TIMER_WAIT))
|
||||
@ -64,7 +64,7 @@ AND (MIN(i.MIN_TIMER_WAIT) != 0)
|
||||
OR @dump_all;
|
||||
EVENT_NAME MIN_TIMER_WAIT MIN(i.MIN_TIMER_WAIT)
|
||||
SELECT EVENT_NAME, e.MAX_TIMER_WAIT, MAX(i.MAX_TIMER_WAIT)
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
|
||||
JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
|
||||
GROUP BY EVENT_NAME
|
||||
HAVING (e.MAX_TIMER_WAIT < MAX(i.MAX_TIMER_WAIT))
|
||||
@ -72,7 +72,7 @@ OR @dump_all;
|
||||
EVENT_NAME MAX_TIMER_WAIT MAX(i.MAX_TIMER_WAIT)
|
||||
"Verifying waits aggregate consistency (thread)"
|
||||
SELECT EVENT_NAME, e.SUM_TIMER_WAIT, SUM(t.SUM_TIMER_WAIT)
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
|
||||
JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
|
||||
USING (EVENT_NAME)
|
||||
GROUP BY EVENT_NAME
|
||||
@ -80,7 +80,7 @@ HAVING (e.SUM_TIMER_WAIT < SUM(t.SUM_TIMER_WAIT))
|
||||
OR @dump_all;
|
||||
EVENT_NAME SUM_TIMER_WAIT SUM(t.SUM_TIMER_WAIT)
|
||||
SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(t.MIN_TIMER_WAIT)
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
|
||||
JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
|
||||
USING (EVENT_NAME)
|
||||
GROUP BY EVENT_NAME
|
||||
@ -89,7 +89,7 @@ AND (MIN(t.MIN_TIMER_WAIT) != 0)
|
||||
OR @dump_all;
|
||||
EVENT_NAME MIN_TIMER_WAIT MIN(t.MIN_TIMER_WAIT)
|
||||
SELECT EVENT_NAME, e.MAX_TIMER_WAIT, MAX(t.MAX_TIMER_WAIT)
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
|
||||
JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
|
||||
USING (EVENT_NAME)
|
||||
GROUP BY EVENT_NAME
|
||||
|
@ -1,7 +0,0 @@
|
||||
alter table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME add column foo integer;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
|
||||
truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
ALTER TABLE performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME ADD INDEX test_index(EVENT_NAME);
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
|
||||
CREATE UNIQUE INDEX test_index ON performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME(EVENT_NAME);
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
|
@ -0,0 +1,10 @@
|
||||
alter table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
add column foo integer;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
|
||||
truncate table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
ALTER TABLE performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
ADD INDEX test_index(EVENT_NAME);
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
|
||||
CREATE UNIQUE INDEX test_index
|
||||
ON performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME(EVENT_NAME);
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
|
@ -1,7 +0,0 @@
|
||||
alter table performance_schema.SETUP_OBJECTS add column foo integer;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
|
||||
truncate table performance_schema.SETUP_OBJECTS;
|
||||
ALTER TABLE performance_schema.SETUP_OBJECTS ADD INDEX test_index(OBJECT_NAME);
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
|
||||
CREATE UNIQUE INDEX test_index ON performance_schema.SETUP_OBJECTS(OBJECT_NAME);
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
|
@ -1,8 +1,8 @@
|
||||
alter table performance_schema.PROCESSLIST add column foo integer;
|
||||
alter table performance_schema.THREADS add column foo integer;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
|
||||
truncate table performance_schema.PROCESSLIST;
|
||||
truncate table performance_schema.THREADS;
|
||||
ERROR HY000: Invalid performance_schema usage.
|
||||
ALTER TABLE performance_schema.PROCESSLIST ADD INDEX test_index(ID);
|
||||
ALTER TABLE performance_schema.THREADS ADD INDEX test_index(ID);
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
|
||||
CREATE UNIQUE INDEX test_index ON performance_schema.PROCESSLIST(ID);
|
||||
CREATE UNIQUE INDEX test_index ON performance_schema.THREADS(ID);
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
|
@ -1,28 +0,0 @@
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
where event_name like 'Wait/Synch/%' limit 1;
|
||||
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT
|
||||
# # # # # #
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
where event_name='FOO';
|
||||
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT
|
||||
insert into performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
set event_name='FOO', count_star=1, sum_timer_wait=2, min_timer_wait=3,
|
||||
avg_timer_wait=4, max_timer_wait=5;
|
||||
ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
|
||||
update performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
set count_star=12;
|
||||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
|
||||
update performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
set count_star=12 where event_name like "FOO";
|
||||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
|
||||
delete from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
where count_star=1;
|
||||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
|
||||
delete from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
|
||||
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME READ;
|
||||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
|
||||
UNLOCK TABLES;
|
||||
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME WRITE;
|
||||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
|
||||
UNLOCK TABLES;
|
@ -0,0 +1,28 @@
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
where event_name like 'Wait/Synch/%' limit 1;
|
||||
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT
|
||||
# # # # # #
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
where event_name='FOO';
|
||||
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT
|
||||
insert into performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
set event_name='FOO', count_star=1, sum_timer_wait=2, min_timer_wait=3,
|
||||
avg_timer_wait=4, max_timer_wait=5;
|
||||
ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
|
||||
update performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
set count_star=12;
|
||||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
|
||||
update performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
set count_star=12 where event_name like "FOO";
|
||||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
|
||||
delete from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
where count_star=1;
|
||||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
|
||||
delete from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
|
||||
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME READ;
|
||||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
|
||||
UNLOCK TABLES;
|
||||
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME WRITE;
|
||||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
|
||||
UNLOCK TABLES;
|
@ -1,35 +0,0 @@
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED AGGREGATED
|
||||
select * from performance_schema.SETUP_OBJECTS
|
||||
where object_type = 'TABLE';
|
||||
OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED AGGREGATED
|
||||
select * from performance_schema.SETUP_OBJECTS
|
||||
where enabled='YES';
|
||||
OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED AGGREGATED
|
||||
insert into performance_schema.SETUP_OBJECTS
|
||||
set object_type='TABLE', object_schema='FOO', object_name='BAR',
|
||||
enabled='YES', timed='YES', aggregated='YES';
|
||||
ERROR HY000: Table storage engine for 'SETUP_OBJECTS' doesn't have this option
|
||||
update performance_schema.SETUP_OBJECTS
|
||||
set object_type='TABLE';
|
||||
update performance_schema.SETUP_OBJECTS
|
||||
set object_schema='ILLEGAL';
|
||||
update performance_schema.SETUP_OBJECTS
|
||||
set object_name='ILLEGAL';
|
||||
update performance_schema.SETUP_OBJECTS
|
||||
set enabled='NO';
|
||||
update performance_schema.SETUP_OBJECTS
|
||||
set timed='NO';
|
||||
update performance_schema.SETUP_OBJECTS
|
||||
set aggregated='NO';
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED AGGREGATED
|
||||
update performance_schema.SETUP_OBJECTS
|
||||
set enabled='YES', timed='YES', aggregated='YES';
|
||||
delete from performance_schema.SETUP_OBJECTS
|
||||
where object_type = 'TABLE';
|
||||
delete from performance_schema.SETUP_OBJECTS;
|
||||
LOCK TABLES performance_schema.SETUP_OBJECTS READ;
|
||||
UNLOCK TABLES;
|
||||
LOCK TABLES performance_schema.SETUP_OBJECTS WRITE;
|
||||
UNLOCK TABLES;
|
@ -1,27 +1,27 @@
|
||||
select * from performance_schema.PROCESSLIST
|
||||
select * from performance_schema.THREADS
|
||||
where name like 'Thread/%' limit 1;
|
||||
THREAD_ID ID NAME
|
||||
# # #
|
||||
select * from performance_schema.PROCESSLIST
|
||||
select * from performance_schema.THREADS
|
||||
where name='FOO';
|
||||
THREAD_ID ID NAME
|
||||
insert into performance_schema.PROCESSLIST
|
||||
insert into performance_schema.THREADS
|
||||
set name='FOO', thread_id=1, id=2;
|
||||
ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'PROCESSLIST'
|
||||
update performance_schema.PROCESSLIST
|
||||
ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'THREADS'
|
||||
update performance_schema.THREADS
|
||||
set thread_id=12;
|
||||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'PROCESSLIST'
|
||||
update performance_schema.PROCESSLIST
|
||||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'THREADS'
|
||||
update performance_schema.THREADS
|
||||
set thread_id=12 where name like "FOO";
|
||||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'PROCESSLIST'
|
||||
delete from performance_schema.PROCESSLIST
|
||||
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'THREADS'
|
||||
delete from performance_schema.THREADS
|
||||
where id=1;
|
||||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'PROCESSLIST'
|
||||
delete from performance_schema.PROCESSLIST;
|
||||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'PROCESSLIST'
|
||||
LOCK TABLES performance_schema.PROCESSLIST READ;
|
||||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'PROCESSLIST'
|
||||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'THREADS'
|
||||
delete from performance_schema.THREADS;
|
||||
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'THREADS'
|
||||
LOCK TABLES performance_schema.THREADS READ;
|
||||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'THREADS'
|
||||
UNLOCK TABLES;
|
||||
LOCK TABLES performance_schema.PROCESSLIST WRITE;
|
||||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'PROCESSLIST'
|
||||
LOCK TABLES performance_schema.THREADS WRITE;
|
||||
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'THREADS'
|
||||
UNLOCK TABLES;
|
@ -90,27 +90,27 @@ SUM(SUM_NUMBER_OF_BYTES_WRITE) AS sum_num_bytes_write
|
||||
FROM performance_schema.FILE_SUMMARY_BY_INSTANCE
|
||||
WHERE FILE_NAME LIKE CONCAT('%', @@tmpdir, '%') ORDER BY NULL;
|
||||
SELECT EVENT_NAME, COUNT_STAR, AVG_TIMER_WAIT, SUM_TIMER_WAIT
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
WHERE COUNT_STAR > 0
|
||||
ORDER BY SUM_TIMER_WAIT DESC
|
||||
LIMIT 10;
|
||||
SELECT i.user, SUM(TIMER_WAIT) SUM_WAIT
|
||||
# ((TIME_TO_SEC(TIMEDIFF(NOW(), i.startup_time)) * 1000) / SUM(TIMER_WAIT)) * 100 WAIT_PERCENTAGE
|
||||
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
|
||||
INNER JOIN performance_schema.PROCESSLIST p USING (THREAD_ID)
|
||||
INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
|
||||
LEFT JOIN information_schema.PROCESSLIST i USING (ID)
|
||||
GROUP BY i.user
|
||||
ORDER BY SUM_WAIT DESC
|
||||
LIMIT 20;
|
||||
SELECT h.EVENT_NAME, SUM(h.TIMER_WAIT) TOTAL_WAIT
|
||||
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
|
||||
INNER JOIN performance_schema.PROCESSLIST p USING (THREAD_ID)
|
||||
INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
|
||||
WHERE p.ID = 1
|
||||
GROUP BY h.EVENT_NAME
|
||||
HAVING TOTAL_WAIT > 0;
|
||||
SELECT i.user, h.operation, SUM(NUMBER_OF_BYTES) bytes
|
||||
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
|
||||
INNER JOIN performance_schema.PROCESSLIST p USING (THREAD_ID)
|
||||
INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
|
||||
LEFT JOIN information_schema.PROCESSLIST i USING (ID)
|
||||
GROUP BY i.user, h.operation
|
||||
HAVING BYTES > 0
|
||||
|
@ -6,20 +6,19 @@ performance_schema COND_INSTANCES def
|
||||
performance_schema EVENTS_WAITS_CURRENT def
|
||||
performance_schema EVENTS_WAITS_HISTORY def
|
||||
performance_schema EVENTS_WAITS_HISTORY_LONG def
|
||||
performance_schema EVENTS_WAITS_SUMMARY_BY_EVENT_NAME def
|
||||
performance_schema EVENTS_WAITS_SUMMARY_BY_INSTANCE def
|
||||
performance_schema EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME def
|
||||
performance_schema EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME def
|
||||
performance_schema FILE_INSTANCES def
|
||||
performance_schema FILE_SUMMARY_BY_EVENT_NAME def
|
||||
performance_schema FILE_SUMMARY_BY_INSTANCE def
|
||||
performance_schema MUTEX_INSTANCES def
|
||||
performance_schema PERFORMANCE_TIMERS def
|
||||
performance_schema PROCESSLIST def
|
||||
performance_schema RWLOCK_INSTANCES def
|
||||
performance_schema SETUP_CONSUMERS def
|
||||
performance_schema SETUP_INSTRUMENTS def
|
||||
performance_schema SETUP_OBJECTS def
|
||||
performance_schema SETUP_TIMERS def
|
||||
performance_schema THREADS def
|
||||
select upper(TABLE_NAME), TABLE_TYPE, ENGINE
|
||||
from information_schema.tables
|
||||
where TABLE_SCHEMA='performance_schema';
|
||||
@ -28,20 +27,19 @@ COND_INSTANCES BASE TABLE PERFORMANCE_SCHEMA
|
||||
EVENTS_WAITS_CURRENT BASE TABLE PERFORMANCE_SCHEMA
|
||||
EVENTS_WAITS_HISTORY BASE TABLE PERFORMANCE_SCHEMA
|
||||
EVENTS_WAITS_HISTORY_LONG BASE TABLE PERFORMANCE_SCHEMA
|
||||
EVENTS_WAITS_SUMMARY_BY_EVENT_NAME BASE TABLE PERFORMANCE_SCHEMA
|
||||
EVENTS_WAITS_SUMMARY_BY_INSTANCE BASE TABLE PERFORMANCE_SCHEMA
|
||||
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME BASE TABLE PERFORMANCE_SCHEMA
|
||||
EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME BASE TABLE PERFORMANCE_SCHEMA
|
||||
FILE_INSTANCES BASE TABLE PERFORMANCE_SCHEMA
|
||||
FILE_SUMMARY_BY_EVENT_NAME BASE TABLE PERFORMANCE_SCHEMA
|
||||
FILE_SUMMARY_BY_INSTANCE BASE TABLE PERFORMANCE_SCHEMA
|
||||
MUTEX_INSTANCES BASE TABLE PERFORMANCE_SCHEMA
|
||||
PERFORMANCE_TIMERS BASE TABLE PERFORMANCE_SCHEMA
|
||||
PROCESSLIST BASE TABLE PERFORMANCE_SCHEMA
|
||||
RWLOCK_INSTANCES BASE TABLE PERFORMANCE_SCHEMA
|
||||
SETUP_CONSUMERS BASE TABLE PERFORMANCE_SCHEMA
|
||||
SETUP_INSTRUMENTS BASE TABLE PERFORMANCE_SCHEMA
|
||||
SETUP_OBJECTS BASE TABLE PERFORMANCE_SCHEMA
|
||||
SETUP_TIMERS BASE TABLE PERFORMANCE_SCHEMA
|
||||
THREADS BASE TABLE PERFORMANCE_SCHEMA
|
||||
select upper(TABLE_NAME), VERSION, ROW_FORMAT
|
||||
from information_schema.tables
|
||||
where TABLE_SCHEMA='performance_schema';
|
||||
@ -50,20 +48,19 @@ COND_INSTANCES 10 Dynamic
|
||||
EVENTS_WAITS_CURRENT 10 Dynamic
|
||||
EVENTS_WAITS_HISTORY 10 Dynamic
|
||||
EVENTS_WAITS_HISTORY_LONG 10 Dynamic
|
||||
EVENTS_WAITS_SUMMARY_BY_EVENT_NAME 10 Dynamic
|
||||
EVENTS_WAITS_SUMMARY_BY_INSTANCE 10 Dynamic
|
||||
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 10 Dynamic
|
||||
EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME 10 Dynamic
|
||||
FILE_INSTANCES 10 Dynamic
|
||||
FILE_SUMMARY_BY_EVENT_NAME 10 Dynamic
|
||||
FILE_SUMMARY_BY_INSTANCE 10 Dynamic
|
||||
MUTEX_INSTANCES 10 Dynamic
|
||||
PERFORMANCE_TIMERS 10 Fixed
|
||||
PROCESSLIST 10 Dynamic
|
||||
RWLOCK_INSTANCES 10 Dynamic
|
||||
SETUP_CONSUMERS 10 Dynamic
|
||||
SETUP_INSTRUMENTS 10 Dynamic
|
||||
SETUP_OBJECTS 10 Dynamic
|
||||
SETUP_TIMERS 10 Dynamic
|
||||
THREADS 10 Dynamic
|
||||
select upper(TABLE_NAME), TABLE_ROWS, AVG_ROW_LENGTH
|
||||
from information_schema.tables
|
||||
where TABLE_SCHEMA='performance_schema';
|
||||
@ -72,20 +69,19 @@ COND_INSTANCES 1000 0
|
||||
EVENTS_WAITS_CURRENT 1000 0
|
||||
EVENTS_WAITS_HISTORY 1000 0
|
||||
EVENTS_WAITS_HISTORY_LONG 10000 0
|
||||
EVENTS_WAITS_SUMMARY_BY_EVENT_NAME 1000 0
|
||||
EVENTS_WAITS_SUMMARY_BY_INSTANCE 1000 0
|
||||
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 1000 0
|
||||
EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME 1000 0
|
||||
FILE_INSTANCES 1000 0
|
||||
FILE_SUMMARY_BY_EVENT_NAME 1000 0
|
||||
FILE_SUMMARY_BY_INSTANCE 1000 0
|
||||
MUTEX_INSTANCES 1000 0
|
||||
PERFORMANCE_TIMERS 5 0
|
||||
PROCESSLIST 1000 0
|
||||
RWLOCK_INSTANCES 1000 0
|
||||
SETUP_CONSUMERS 8 0
|
||||
SETUP_INSTRUMENTS 1000 0
|
||||
SETUP_OBJECTS 1000 0
|
||||
SETUP_TIMERS 1 0
|
||||
THREADS 1000 0
|
||||
select upper(TABLE_NAME), DATA_LENGTH, MAX_DATA_LENGTH
|
||||
from information_schema.tables
|
||||
where TABLE_SCHEMA='performance_schema';
|
||||
@ -94,20 +90,19 @@ COND_INSTANCES 0 0
|
||||
EVENTS_WAITS_CURRENT 0 0
|
||||
EVENTS_WAITS_HISTORY 0 0
|
||||
EVENTS_WAITS_HISTORY_LONG 0 0
|
||||
EVENTS_WAITS_SUMMARY_BY_EVENT_NAME 0 0
|
||||
EVENTS_WAITS_SUMMARY_BY_INSTANCE 0 0
|
||||
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 0 0
|
||||
EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME 0 0
|
||||
FILE_INSTANCES 0 0
|
||||
FILE_SUMMARY_BY_EVENT_NAME 0 0
|
||||
FILE_SUMMARY_BY_INSTANCE 0 0
|
||||
MUTEX_INSTANCES 0 0
|
||||
PERFORMANCE_TIMERS 0 0
|
||||
PROCESSLIST 0 0
|
||||
RWLOCK_INSTANCES 0 0
|
||||
SETUP_CONSUMERS 0 0
|
||||
SETUP_INSTRUMENTS 0 0
|
||||
SETUP_OBJECTS 0 0
|
||||
SETUP_TIMERS 0 0
|
||||
THREADS 0 0
|
||||
select upper(TABLE_NAME), INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT
|
||||
from information_schema.tables
|
||||
where TABLE_SCHEMA='performance_schema';
|
||||
@ -116,20 +111,19 @@ COND_INSTANCES 0 0 NULL
|
||||
EVENTS_WAITS_CURRENT 0 0 NULL
|
||||
EVENTS_WAITS_HISTORY 0 0 NULL
|
||||
EVENTS_WAITS_HISTORY_LONG 0 0 NULL
|
||||
EVENTS_WAITS_SUMMARY_BY_EVENT_NAME 0 0 NULL
|
||||
EVENTS_WAITS_SUMMARY_BY_INSTANCE 0 0 NULL
|
||||
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 0 0 NULL
|
||||
EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME 0 0 NULL
|
||||
FILE_INSTANCES 0 0 NULL
|
||||
FILE_SUMMARY_BY_EVENT_NAME 0 0 NULL
|
||||
FILE_SUMMARY_BY_INSTANCE 0 0 NULL
|
||||
MUTEX_INSTANCES 0 0 NULL
|
||||
PERFORMANCE_TIMERS 0 0 NULL
|
||||
PROCESSLIST 0 0 NULL
|
||||
RWLOCK_INSTANCES 0 0 NULL
|
||||
SETUP_CONSUMERS 0 0 NULL
|
||||
SETUP_INSTRUMENTS 0 0 NULL
|
||||
SETUP_OBJECTS 0 0 NULL
|
||||
SETUP_TIMERS 0 0 NULL
|
||||
THREADS 0 0 NULL
|
||||
select upper(TABLE_NAME), CREATE_TIME, UPDATE_TIME, CHECK_TIME
|
||||
from information_schema.tables
|
||||
where TABLE_SCHEMA='performance_schema';
|
||||
@ -138,20 +132,19 @@ COND_INSTANCES NULL NULL NULL
|
||||
EVENTS_WAITS_CURRENT NULL NULL NULL
|
||||
EVENTS_WAITS_HISTORY NULL NULL NULL
|
||||
EVENTS_WAITS_HISTORY_LONG NULL NULL NULL
|
||||
EVENTS_WAITS_SUMMARY_BY_EVENT_NAME NULL NULL NULL
|
||||
EVENTS_WAITS_SUMMARY_BY_INSTANCE NULL NULL NULL
|
||||
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME NULL NULL NULL
|
||||
EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME NULL NULL NULL
|
||||
FILE_INSTANCES NULL NULL NULL
|
||||
FILE_SUMMARY_BY_EVENT_NAME NULL NULL NULL
|
||||
FILE_SUMMARY_BY_INSTANCE NULL NULL NULL
|
||||
MUTEX_INSTANCES NULL NULL NULL
|
||||
PERFORMANCE_TIMERS NULL NULL NULL
|
||||
PROCESSLIST NULL NULL NULL
|
||||
RWLOCK_INSTANCES NULL NULL NULL
|
||||
SETUP_CONSUMERS NULL NULL NULL
|
||||
SETUP_INSTRUMENTS NULL NULL NULL
|
||||
SETUP_OBJECTS NULL NULL NULL
|
||||
SETUP_TIMERS NULL NULL NULL
|
||||
THREADS NULL NULL NULL
|
||||
select upper(TABLE_NAME), TABLE_COLLATION, CHECKSUM
|
||||
from information_schema.tables
|
||||
where TABLE_SCHEMA='performance_schema';
|
||||
@ -160,20 +153,19 @@ COND_INSTANCES utf8_general_ci NULL
|
||||
EVENTS_WAITS_CURRENT utf8_general_ci NULL
|
||||
EVENTS_WAITS_HISTORY utf8_general_ci NULL
|
||||
EVENTS_WAITS_HISTORY_LONG utf8_general_ci NULL
|
||||
EVENTS_WAITS_SUMMARY_BY_EVENT_NAME utf8_general_ci NULL
|
||||
EVENTS_WAITS_SUMMARY_BY_INSTANCE utf8_general_ci NULL
|
||||
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME utf8_general_ci NULL
|
||||
EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME utf8_general_ci NULL
|
||||
FILE_INSTANCES utf8_general_ci NULL
|
||||
FILE_SUMMARY_BY_EVENT_NAME utf8_general_ci NULL
|
||||
FILE_SUMMARY_BY_INSTANCE utf8_general_ci NULL
|
||||
MUTEX_INSTANCES utf8_general_ci NULL
|
||||
PERFORMANCE_TIMERS utf8_general_ci NULL
|
||||
PROCESSLIST utf8_general_ci NULL
|
||||
RWLOCK_INSTANCES utf8_general_ci NULL
|
||||
SETUP_CONSUMERS utf8_general_ci NULL
|
||||
SETUP_INSTRUMENTS utf8_general_ci NULL
|
||||
SETUP_OBJECTS utf8_general_ci NULL
|
||||
SETUP_TIMERS utf8_general_ci NULL
|
||||
THREADS utf8_general_ci NULL
|
||||
select upper(TABLE_NAME), TABLE_COMMENT
|
||||
from information_schema.tables
|
||||
where TABLE_SCHEMA='performance_schema';
|
||||
@ -182,17 +174,16 @@ COND_INSTANCES
|
||||
EVENTS_WAITS_CURRENT
|
||||
EVENTS_WAITS_HISTORY
|
||||
EVENTS_WAITS_HISTORY_LONG
|
||||
EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
EVENTS_WAITS_SUMMARY_BY_INSTANCE
|
||||
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME
|
||||
EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
FILE_INSTANCES
|
||||
FILE_SUMMARY_BY_EVENT_NAME
|
||||
FILE_SUMMARY_BY_INSTANCE
|
||||
MUTEX_INSTANCES
|
||||
PERFORMANCE_TIMERS
|
||||
PROCESSLIST
|
||||
RWLOCK_INSTANCES
|
||||
SETUP_CONSUMERS
|
||||
SETUP_INSTRUMENTS
|
||||
SETUP_OBJECTS
|
||||
SETUP_TIMERS
|
||||
THREADS
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
|
||||
WHERE THREAD_ID IN
|
||||
(SELECT THREAD_ID FROM performance_schema.PROCESSLIST)
|
||||
(SELECT THREAD_ID FROM performance_schema.THREADS)
|
||||
AND EVENT_NAME IN
|
||||
(SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS
|
||||
WHERE NAME LIKE "wait/synch/%")
|
||||
|
@ -17,11 +17,11 @@ show variables like "performance_schema_max_thread%";
|
||||
Variable_name Value
|
||||
performance_schema_max_thread_classes 50
|
||||
performance_schema_max_thread_instances 10
|
||||
select count(*) from performance_schema.PROCESSLIST
|
||||
select count(*) from performance_schema.THREADS
|
||||
where name like "thread/sql/main";
|
||||
count(*)
|
||||
1
|
||||
select count(*) from performance_schema.PROCESSLIST
|
||||
select count(*) from performance_schema.THREADS
|
||||
where name like "thread/sql/OneConnection";
|
||||
count(*)
|
||||
0
|
||||
|
@ -12,21 +12,20 @@ ERROR 1050 (42S01) at line 183: Table 'COND_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists
|
||||
ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists
|
||||
ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists
|
||||
ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 262: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 283: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists
|
||||
ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists
|
||||
ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists
|
||||
ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists
|
||||
ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists
|
||||
ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists
|
||||
ERROR 1644 (HY000) at line 1138: Unexpected content found in the performance_schema database.
|
||||
ERROR 1050 (42S01) at line 412: Table 'RWLOCK_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 428: Table 'SETUP_CONSUMERS' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'SETUP_INSTRUMENTS' already exists
|
||||
ERROR 1050 (42S01) at line 461: Table 'SETUP_TIMERS' already exists
|
||||
ERROR 1050 (42S01) at line 478: Table 'THREADS' already exists
|
||||
ERROR 1644 (HY000) at line 1118: Unexpected content found in the performance_schema database.
|
||||
FATAL ERROR: Upgrade failed
|
||||
show tables like "user_table";
|
||||
Tables_in_performance_schema (user_table)
|
||||
@ -43,21 +42,20 @@ ERROR 1050 (42S01) at line 183: Table 'COND_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists
|
||||
ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists
|
||||
ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists
|
||||
ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 262: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 283: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists
|
||||
ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists
|
||||
ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists
|
||||
ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists
|
||||
ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists
|
||||
ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists
|
||||
ERROR 1644 (HY000) at line 1138: Unexpected content found in the performance_schema database.
|
||||
ERROR 1050 (42S01) at line 412: Table 'RWLOCK_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 428: Table 'SETUP_CONSUMERS' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'SETUP_INSTRUMENTS' already exists
|
||||
ERROR 1050 (42S01) at line 461: Table 'SETUP_TIMERS' already exists
|
||||
ERROR 1050 (42S01) at line 478: Table 'THREADS' already exists
|
||||
ERROR 1644 (HY000) at line 1118: Unexpected content found in the performance_schema database.
|
||||
FATAL ERROR: Upgrade failed
|
||||
show tables like "user_view";
|
||||
Tables_in_performance_schema (user_view)
|
||||
@ -72,21 +70,20 @@ ERROR 1050 (42S01) at line 183: Table 'COND_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists
|
||||
ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists
|
||||
ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists
|
||||
ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 262: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 283: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists
|
||||
ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists
|
||||
ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists
|
||||
ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists
|
||||
ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists
|
||||
ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists
|
||||
ERROR 1644 (HY000) at line 1138: Unexpected content found in the performance_schema database.
|
||||
ERROR 1050 (42S01) at line 412: Table 'RWLOCK_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 428: Table 'SETUP_CONSUMERS' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'SETUP_INSTRUMENTS' already exists
|
||||
ERROR 1050 (42S01) at line 461: Table 'SETUP_TIMERS' already exists
|
||||
ERROR 1050 (42S01) at line 478: Table 'THREADS' already exists
|
||||
ERROR 1644 (HY000) at line 1118: Unexpected content found in the performance_schema database.
|
||||
FATAL ERROR: Upgrade failed
|
||||
select name from mysql.proc where db='performance_schema';
|
||||
name
|
||||
@ -101,21 +98,20 @@ ERROR 1050 (42S01) at line 183: Table 'COND_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists
|
||||
ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists
|
||||
ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists
|
||||
ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 262: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 283: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists
|
||||
ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists
|
||||
ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists
|
||||
ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists
|
||||
ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists
|
||||
ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists
|
||||
ERROR 1644 (HY000) at line 1138: Unexpected content found in the performance_schema database.
|
||||
ERROR 1050 (42S01) at line 412: Table 'RWLOCK_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 428: Table 'SETUP_CONSUMERS' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'SETUP_INSTRUMENTS' already exists
|
||||
ERROR 1050 (42S01) at line 461: Table 'SETUP_TIMERS' already exists
|
||||
ERROR 1050 (42S01) at line 478: Table 'THREADS' already exists
|
||||
ERROR 1644 (HY000) at line 1118: Unexpected content found in the performance_schema database.
|
||||
FATAL ERROR: Upgrade failed
|
||||
select name from mysql.proc where db='performance_schema';
|
||||
name
|
||||
@ -130,21 +126,20 @@ ERROR 1050 (42S01) at line 183: Table 'COND_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists
|
||||
ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists
|
||||
ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists
|
||||
ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 262: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 283: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists
|
||||
ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists
|
||||
ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists
|
||||
ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists
|
||||
ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists
|
||||
ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists
|
||||
ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists
|
||||
ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists
|
||||
ERROR 1644 (HY000) at line 1138: Unexpected content found in the performance_schema database.
|
||||
ERROR 1050 (42S01) at line 412: Table 'RWLOCK_INSTANCES' already exists
|
||||
ERROR 1050 (42S01) at line 428: Table 'SETUP_CONSUMERS' already exists
|
||||
ERROR 1050 (42S01) at line 445: Table 'SETUP_INSTRUMENTS' already exists
|
||||
ERROR 1050 (42S01) at line 461: Table 'SETUP_TIMERS' already exists
|
||||
ERROR 1050 (42S01) at line 478: Table 'THREADS' already exists
|
||||
ERROR 1644 (HY000) at line 1118: Unexpected content found in the performance_schema database.
|
||||
FATAL ERROR: Upgrade failed
|
||||
select name from mysql.event where db='performance_schema';
|
||||
name
|
||||
|
@ -12,20 +12,19 @@ COND_INSTANCES
|
||||
EVENTS_WAITS_CURRENT
|
||||
EVENTS_WAITS_HISTORY
|
||||
EVENTS_WAITS_HISTORY_LONG
|
||||
EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
EVENTS_WAITS_SUMMARY_BY_INSTANCE
|
||||
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME
|
||||
EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
FILE_INSTANCES
|
||||
FILE_SUMMARY_BY_EVENT_NAME
|
||||
FILE_SUMMARY_BY_INSTANCE
|
||||
MUTEX_INSTANCES
|
||||
PERFORMANCE_TIMERS
|
||||
PROCESSLIST
|
||||
RWLOCK_INSTANCES
|
||||
SETUP_CONSUMERS
|
||||
SETUP_INSTRUMENTS
|
||||
SETUP_OBJECTS
|
||||
SETUP_TIMERS
|
||||
THREADS
|
||||
show create table COND_INSTANCES;
|
||||
Table Create Table
|
||||
COND_INSTANCES CREATE TABLE `COND_INSTANCES` (
|
||||
@ -92,16 +91,6 @@ EVENTS_WAITS_HISTORY_LONG CREATE TABLE `EVENTS_WAITS_HISTORY_LONG` (
|
||||
`NUMBER_OF_BYTES` bigint(20) unsigned DEFAULT NULL,
|
||||
`FLAGS` int(10) unsigned DEFAULT NULL
|
||||
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
|
||||
show create table EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
Table Create Table
|
||||
EVENTS_WAITS_SUMMARY_BY_EVENT_NAME CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_EVENT_NAME` (
|
||||
`EVENT_NAME` varchar(128) NOT NULL,
|
||||
`COUNT_STAR` bigint(20) unsigned NOT NULL,
|
||||
`SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL,
|
||||
`MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL,
|
||||
`AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL,
|
||||
`MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL
|
||||
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
|
||||
show create table EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
Table Create Table
|
||||
EVENTS_WAITS_SUMMARY_BY_INSTANCE CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_INSTANCE` (
|
||||
@ -124,6 +113,16 @@ EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME CREATE TABLE `EVENTS_WAITS_SUMMARY_
|
||||
`AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL,
|
||||
`MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL
|
||||
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
|
||||
show create table EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
Table Create Table
|
||||
EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME CREATE TABLE `EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME` (
|
||||
`EVENT_NAME` varchar(128) NOT NULL,
|
||||
`COUNT_STAR` bigint(20) unsigned NOT NULL,
|
||||
`SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL,
|
||||
`MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL,
|
||||
`AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL,
|
||||
`MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL
|
||||
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
|
||||
show create table FILE_INSTANCES;
|
||||
Table Create Table
|
||||
FILE_INSTANCES CREATE TABLE `FILE_INSTANCES` (
|
||||
@ -165,13 +164,6 @@ PERFORMANCE_TIMERS CREATE TABLE `PERFORMANCE_TIMERS` (
|
||||
`TIMER_RESOLUTION` bigint(20) DEFAULT NULL,
|
||||
`TIMER_OVERHEAD` bigint(20) DEFAULT NULL
|
||||
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
|
||||
show create table PROCESSLIST;
|
||||
Table Create Table
|
||||
PROCESSLIST CREATE TABLE `PROCESSLIST` (
|
||||
`THREAD_ID` int(11) NOT NULL,
|
||||
`ID` int(11) NOT NULL,
|
||||
`NAME` varchar(64) NOT NULL
|
||||
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
|
||||
show create table RWLOCK_INSTANCES;
|
||||
Table Create Table
|
||||
RWLOCK_INSTANCES CREATE TABLE `RWLOCK_INSTANCES` (
|
||||
@ -193,19 +185,16 @@ SETUP_INSTRUMENTS CREATE TABLE `SETUP_INSTRUMENTS` (
|
||||
`ENABLED` enum('YES','NO') NOT NULL,
|
||||
`TIMED` enum('YES','NO') NOT NULL
|
||||
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
|
||||
show create table SETUP_OBJECTS;
|
||||
Table Create Table
|
||||
SETUP_OBJECTS CREATE TABLE `SETUP_OBJECTS` (
|
||||
`OBJECT_TYPE` varchar(64) DEFAULT NULL,
|
||||
`OBJECT_SCHEMA` varchar(64) DEFAULT NULL,
|
||||
`OBJECT_NAME` varchar(64) DEFAULT NULL,
|
||||
`ENABLED` enum('YES','NO') NOT NULL,
|
||||
`TIMED` enum('YES','NO') NOT NULL,
|
||||
`AGGREGATED` enum('YES','NO') NOT NULL
|
||||
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
|
||||
show create table SETUP_TIMERS;
|
||||
Table Create Table
|
||||
SETUP_TIMERS CREATE TABLE `SETUP_TIMERS` (
|
||||
`NAME` varchar(64) NOT NULL,
|
||||
`TIMER_NAME` enum('CYCLE','NANOSECOND','MICROSECOND','MILLISECOND','TICK') NOT NULL
|
||||
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
|
||||
show create table THREADS;
|
||||
Table Create Table
|
||||
THREADS CREATE TABLE `THREADS` (
|
||||
`THREAD_ID` int(11) NOT NULL,
|
||||
`ID` int(11) NOT NULL,
|
||||
`NAME` varchar(64) NOT NULL
|
||||
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
|
||||
|
@ -13,7 +13,7 @@ OPERATION TOTAL
|
||||
chsize [NUM_BYTES]
|
||||
SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
|
||||
WHERE THREAD_ID IN
|
||||
(SELECT THREAD_ID FROM performance_schema.PROCESSLIST)
|
||||
(SELECT THREAD_ID FROM performance_schema.THREADS)
|
||||
AND EVENT_NAME IN
|
||||
(SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS
|
||||
WHERE NAME LIKE "wait/synch/%")
|
||||
@ -86,7 +86,7 @@ DROP TRIGGER t_ps_trigger;
|
||||
DROP PROCEDURE IF EXISTS t_ps_proc;
|
||||
CREATE PROCEDURE t_ps_proc(IN tid INT, OUT pid INT)
|
||||
BEGIN
|
||||
SELECT id FROM performance_schema.PROCESSLIST
|
||||
SELECT id FROM performance_schema.THREADS
|
||||
WHERE THREAD_ID = tid INTO pid;
|
||||
END;
|
||||
|
|
||||
@ -94,7 +94,7 @@ CALL t_ps_proc(0, @p_id);
|
||||
DROP FUNCTION IF EXISTS t_ps_proc;
|
||||
CREATE FUNCTION t_ps_func(tid INT) RETURNS int
|
||||
BEGIN
|
||||
return (SELECT id FROM performance_schema.PROCESSLIST
|
||||
return (SELECT id FROM performance_schema.THREADS
|
||||
WHERE THREAD_ID = tid);
|
||||
END;
|
||||
|
|
||||
|
@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
|
||||
select * from performance_schema.EVENTS_WAITS_CURRENT;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_INSTANCES;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.MUTEX_INSTANCES;
|
||||
select * from performance_schema.PERFORMANCE_TIMERS;
|
||||
select * from performance_schema.PROCESSLIST;
|
||||
select * from performance_schema.RWLOCK_INSTANCES;
|
||||
select * from performance_schema.SETUP_CONSUMERS;
|
||||
select * from performance_schema.SETUP_INSTRUMENTS;
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
select * from performance_schema.SETUP_TIMERS;
|
||||
select * from performance_schema.THREADS;
|
||||
show variables like "performance_schema%";
|
||||
Variable_name Value
|
||||
performance_schema ON
|
||||
|
@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
|
||||
select * from performance_schema.EVENTS_WAITS_CURRENT;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_INSTANCES;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.MUTEX_INSTANCES;
|
||||
select * from performance_schema.PERFORMANCE_TIMERS;
|
||||
select * from performance_schema.PROCESSLIST;
|
||||
select * from performance_schema.RWLOCK_INSTANCES;
|
||||
select * from performance_schema.SETUP_CONSUMERS;
|
||||
select * from performance_schema.SETUP_INSTRUMENTS;
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
select * from performance_schema.SETUP_TIMERS;
|
||||
select * from performance_schema.THREADS;
|
||||
show variables like "performance_schema%";
|
||||
Variable_name Value
|
||||
performance_schema ON
|
||||
|
@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
|
||||
select * from performance_schema.EVENTS_WAITS_CURRENT;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_INSTANCES;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.MUTEX_INSTANCES;
|
||||
select * from performance_schema.PERFORMANCE_TIMERS;
|
||||
select * from performance_schema.PROCESSLIST;
|
||||
select * from performance_schema.RWLOCK_INSTANCES;
|
||||
select * from performance_schema.SETUP_CONSUMERS;
|
||||
select * from performance_schema.SETUP_INSTRUMENTS;
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
select * from performance_schema.SETUP_TIMERS;
|
||||
select * from performance_schema.THREADS;
|
||||
show variables like "performance_schema%";
|
||||
Variable_name Value
|
||||
performance_schema ON
|
||||
|
@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
|
||||
select * from performance_schema.EVENTS_WAITS_CURRENT;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_INSTANCES;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.MUTEX_INSTANCES;
|
||||
select * from performance_schema.PERFORMANCE_TIMERS;
|
||||
select * from performance_schema.PROCESSLIST;
|
||||
select * from performance_schema.RWLOCK_INSTANCES;
|
||||
select * from performance_schema.SETUP_CONSUMERS;
|
||||
select * from performance_schema.SETUP_INSTRUMENTS;
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
select * from performance_schema.SETUP_TIMERS;
|
||||
select * from performance_schema.THREADS;
|
||||
show variables like "performance_schema%";
|
||||
Variable_name Value
|
||||
performance_schema ON
|
||||
|
@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
|
||||
select * from performance_schema.EVENTS_WAITS_CURRENT;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_INSTANCES;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.MUTEX_INSTANCES;
|
||||
select * from performance_schema.PERFORMANCE_TIMERS;
|
||||
select * from performance_schema.PROCESSLIST;
|
||||
select * from performance_schema.RWLOCK_INSTANCES;
|
||||
select * from performance_schema.SETUP_CONSUMERS;
|
||||
select * from performance_schema.SETUP_INSTRUMENTS;
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
select * from performance_schema.SETUP_TIMERS;
|
||||
select * from performance_schema.THREADS;
|
||||
show variables like "performance_schema%";
|
||||
Variable_name Value
|
||||
performance_schema ON
|
||||
|
@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
|
||||
select * from performance_schema.EVENTS_WAITS_CURRENT;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_INSTANCES;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.MUTEX_INSTANCES;
|
||||
select * from performance_schema.PERFORMANCE_TIMERS;
|
||||
select * from performance_schema.PROCESSLIST;
|
||||
select * from performance_schema.RWLOCK_INSTANCES;
|
||||
select * from performance_schema.SETUP_CONSUMERS;
|
||||
select * from performance_schema.SETUP_INSTRUMENTS;
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
select * from performance_schema.SETUP_TIMERS;
|
||||
select * from performance_schema.THREADS;
|
||||
show variables like "performance_schema%";
|
||||
Variable_name Value
|
||||
performance_schema ON
|
||||
|
@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
|
||||
select * from performance_schema.EVENTS_WAITS_CURRENT;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_INSTANCES;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.MUTEX_INSTANCES;
|
||||
select * from performance_schema.PERFORMANCE_TIMERS;
|
||||
select * from performance_schema.PROCESSLIST;
|
||||
select * from performance_schema.RWLOCK_INSTANCES;
|
||||
select * from performance_schema.SETUP_CONSUMERS;
|
||||
select * from performance_schema.SETUP_INSTRUMENTS;
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
select * from performance_schema.SETUP_TIMERS;
|
||||
select * from performance_schema.THREADS;
|
||||
show variables like "performance_schema%";
|
||||
Variable_name Value
|
||||
performance_schema ON
|
||||
|
@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
|
||||
select * from performance_schema.EVENTS_WAITS_CURRENT;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_INSTANCES;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.MUTEX_INSTANCES;
|
||||
select * from performance_schema.PERFORMANCE_TIMERS;
|
||||
select * from performance_schema.PROCESSLIST;
|
||||
select * from performance_schema.RWLOCK_INSTANCES;
|
||||
select * from performance_schema.SETUP_CONSUMERS;
|
||||
select * from performance_schema.SETUP_INSTRUMENTS;
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
select * from performance_schema.SETUP_TIMERS;
|
||||
select * from performance_schema.THREADS;
|
||||
show variables like "performance_schema%";
|
||||
Variable_name Value
|
||||
performance_schema ON
|
||||
|
@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
|
||||
select * from performance_schema.EVENTS_WAITS_CURRENT;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_INSTANCES;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.MUTEX_INSTANCES;
|
||||
select * from performance_schema.PERFORMANCE_TIMERS;
|
||||
select * from performance_schema.PROCESSLIST;
|
||||
select * from performance_schema.RWLOCK_INSTANCES;
|
||||
select * from performance_schema.SETUP_CONSUMERS;
|
||||
select * from performance_schema.SETUP_INSTRUMENTS;
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
select * from performance_schema.SETUP_TIMERS;
|
||||
select * from performance_schema.THREADS;
|
||||
show variables like "performance_schema%";
|
||||
Variable_name Value
|
||||
performance_schema ON
|
||||
@ -66,7 +65,7 @@ select variable_value > 0 from information_schema.global_status
|
||||
where variable_name like 'PERFORMANCE_SCHEMA_THREAD_CLASSES_LOST';
|
||||
variable_value > 0
|
||||
1
|
||||
select count(*) from performance_schema.PROCESSLIST;
|
||||
select count(*) from performance_schema.THREADS;
|
||||
count(*)
|
||||
0
|
||||
show status like "performance_schema_thread_instances_lost";
|
||||
|
@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
|
||||
select * from performance_schema.EVENTS_WAITS_CURRENT;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_INSTANCES;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.MUTEX_INSTANCES;
|
||||
select * from performance_schema.PERFORMANCE_TIMERS;
|
||||
select * from performance_schema.PROCESSLIST;
|
||||
select * from performance_schema.RWLOCK_INSTANCES;
|
||||
select * from performance_schema.SETUP_CONSUMERS;
|
||||
select * from performance_schema.SETUP_INSTRUMENTS;
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
select * from performance_schema.SETUP_TIMERS;
|
||||
select * from performance_schema.THREADS;
|
||||
show variables like "performance_schema%";
|
||||
Variable_name Value
|
||||
performance_schema ON
|
||||
@ -64,7 +63,7 @@ Performance_schema_thread_classes_lost 0
|
||||
show variables like "performance_schema_max_thread_instances";
|
||||
Variable_name Value
|
||||
performance_schema_max_thread_instances 0
|
||||
select count(*) from performance_schema.PROCESSLIST;
|
||||
select count(*) from performance_schema.THREADS;
|
||||
count(*)
|
||||
0
|
||||
select variable_value > 0 from information_schema.global_status
|
||||
|
@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
|
||||
select * from performance_schema.EVENTS_WAITS_CURRENT;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_INSTANCES;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.MUTEX_INSTANCES;
|
||||
select * from performance_schema.PERFORMANCE_TIMERS;
|
||||
select * from performance_schema.PROCESSLIST;
|
||||
select * from performance_schema.RWLOCK_INSTANCES;
|
||||
select * from performance_schema.SETUP_CONSUMERS;
|
||||
select * from performance_schema.SETUP_INSTRUMENTS;
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
select * from performance_schema.SETUP_TIMERS;
|
||||
select * from performance_schema.THREADS;
|
||||
show variables like "performance_schema%";
|
||||
Variable_name Value
|
||||
performance_schema OFF
|
||||
|
@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
|
||||
select * from performance_schema.EVENTS_WAITS_CURRENT;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY;
|
||||
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_INSTANCES;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
select * from performance_schema.MUTEX_INSTANCES;
|
||||
select * from performance_schema.PERFORMANCE_TIMERS;
|
||||
select * from performance_schema.PROCESSLIST;
|
||||
select * from performance_schema.RWLOCK_INSTANCES;
|
||||
select * from performance_schema.SETUP_CONSUMERS;
|
||||
select * from performance_schema.SETUP_INSTRUMENTS;
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
select * from performance_schema.SETUP_TIMERS;
|
||||
select * from performance_schema.THREADS;
|
||||
show variables like "performance_schema%";
|
||||
Variable_name Value
|
||||
performance_schema ON
|
||||
|
@ -31,7 +31,7 @@ update performance_schema.SETUP_CONSUMERS set enabled = 'NO';
|
||||
# Cleanup statistics
|
||||
truncate table performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
|
||||
truncate table performance_schema.FILE_SUMMARY_BY_INSTANCE;
|
||||
truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
truncate table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
|
||||
@ -66,9 +66,9 @@ set @dump_all=FALSE;
|
||||
# because doing so removes a row in FILE_SUMMARY_BY_INSTANCE.
|
||||
|
||||
# Likewise:
|
||||
# - COUNT/SUM/MAX(EVENTS_WAITS_SUMMARY_BY_EVENT_NAME) >=
|
||||
# - COUNT/SUM/MAX(EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME) >=
|
||||
# COUNT/SUM/MAX(EVENTS_WAITS_SUMMARY_BY_INSTANCE)
|
||||
# - MIN(EVENTS_WAITS_SUMMARY_BY_EVENT_NAME) <=
|
||||
# - MIN(EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME) <=
|
||||
# MIN(EVENTS_WAITS_SUMMARY_BY_INSTANCE)
|
||||
# There will be equality only when an instrument instance
|
||||
# is not removed, which is next to impossible to predictably guarantee
|
||||
@ -80,9 +80,9 @@ set @dump_all=FALSE;
|
||||
# Both cause a row to be deleted from EVENTS_WAITS_SUMMARY_BY_INSTANCE.
|
||||
|
||||
# Likewise:
|
||||
# - COUNT/SUM/MAX(EVENTS_WAITS_SUMMARY_BY_EVENT_NAME) >=
|
||||
# - COUNT/SUM/MAX(EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME) >=
|
||||
# COUNT/SUM/MAX(EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME)
|
||||
# - MIN(EVENTS_WAITS_SUMMARY_BY_EVENT_NAME) <=
|
||||
# - MIN(EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME) <=
|
||||
# MIN(EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME)
|
||||
# There will be equality only when no thread is removed,
|
||||
# that is if no thread disconnects, or no sub thread (for example insert
|
||||
@ -131,14 +131,14 @@ OR @dump_all;
|
||||
--echo "Verifying waits aggregate consistency (instance)"
|
||||
|
||||
SELECT EVENT_NAME, e.SUM_TIMER_WAIT, SUM(i.SUM_TIMER_WAIT)
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
|
||||
JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
|
||||
GROUP BY EVENT_NAME
|
||||
HAVING (e.SUM_TIMER_WAIT < SUM(i.SUM_TIMER_WAIT))
|
||||
OR @dump_all;
|
||||
|
||||
SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(i.MIN_TIMER_WAIT)
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
|
||||
JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
|
||||
GROUP BY EVENT_NAME
|
||||
HAVING (e.MIN_TIMER_WAIT > MIN(i.MIN_TIMER_WAIT))
|
||||
@ -146,7 +146,7 @@ AND (MIN(i.MIN_TIMER_WAIT) != 0)
|
||||
OR @dump_all;
|
||||
|
||||
SELECT EVENT_NAME, e.MAX_TIMER_WAIT, MAX(i.MAX_TIMER_WAIT)
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
|
||||
JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
|
||||
GROUP BY EVENT_NAME
|
||||
HAVING (e.MAX_TIMER_WAIT < MAX(i.MAX_TIMER_WAIT))
|
||||
@ -155,7 +155,7 @@ OR @dump_all;
|
||||
--echo "Verifying waits aggregate consistency (thread)"
|
||||
|
||||
SELECT EVENT_NAME, e.SUM_TIMER_WAIT, SUM(t.SUM_TIMER_WAIT)
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
|
||||
JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
|
||||
USING (EVENT_NAME)
|
||||
GROUP BY EVENT_NAME
|
||||
@ -163,7 +163,7 @@ HAVING (e.SUM_TIMER_WAIT < SUM(t.SUM_TIMER_WAIT))
|
||||
OR @dump_all;
|
||||
|
||||
SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(t.MIN_TIMER_WAIT)
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
|
||||
JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
|
||||
USING (EVENT_NAME)
|
||||
GROUP BY EVENT_NAME
|
||||
@ -172,7 +172,7 @@ AND (MIN(t.MIN_TIMER_WAIT) != 0)
|
||||
OR @dump_all;
|
||||
|
||||
SELECT EVENT_NAME, e.MAX_TIMER_WAIT, MAX(t.MAX_TIMER_WAIT)
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
|
||||
JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
|
||||
USING (EVENT_NAME)
|
||||
GROUP BY EVENT_NAME
|
||||
|
@ -19,13 +19,16 @@
|
||||
--source include/have_perfschema.inc
|
||||
|
||||
-- error ER_DBACCESS_DENIED_ERROR
|
||||
alter table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME add column foo integer;
|
||||
alter table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
add column foo integer;
|
||||
|
||||
truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
truncate table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
|
||||
-- error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME ADD INDEX test_index(EVENT_NAME);
|
||||
ALTER TABLE performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
ADD INDEX test_index(EVENT_NAME);
|
||||
|
||||
-- error ER_DBACCESS_DENIED_ERROR
|
||||
CREATE UNIQUE INDEX test_index ON performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME(EVENT_NAME);
|
||||
CREATE UNIQUE INDEX test_index
|
||||
ON performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME(EVENT_NAME);
|
||||
|
@ -1,32 +0,0 @@
|
||||
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
# Tests for PERFORMANCE_SCHEMA
|
||||
|
||||
--source include/not_embedded.inc
|
||||
--source include/have_perfschema.inc
|
||||
|
||||
--replace_result '\'setup_objects' '\'SETUP_OBJECTS'
|
||||
-- error ER_DBACCESS_DENIED_ERROR
|
||||
alter table performance_schema.SETUP_OBJECTS add column foo integer;
|
||||
|
||||
truncate table performance_schema.SETUP_OBJECTS;
|
||||
|
||||
-- error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE performance_schema.SETUP_OBJECTS ADD INDEX test_index(OBJECT_NAME);
|
||||
|
||||
-- error ER_DBACCESS_DENIED_ERROR
|
||||
CREATE UNIQUE INDEX test_index ON performance_schema.SETUP_OBJECTS(OBJECT_NAME);
|
||||
|
@ -19,14 +19,14 @@
|
||||
--source include/have_perfschema.inc
|
||||
|
||||
-- error ER_DBACCESS_DENIED_ERROR
|
||||
alter table performance_schema.PROCESSLIST add column foo integer;
|
||||
alter table performance_schema.THREADS add column foo integer;
|
||||
|
||||
-- error ER_WRONG_PERFSCHEMA_USAGE
|
||||
truncate table performance_schema.PROCESSLIST;
|
||||
truncate table performance_schema.THREADS;
|
||||
|
||||
-- error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE performance_schema.PROCESSLIST ADD INDEX test_index(ID);
|
||||
ALTER TABLE performance_schema.THREADS ADD INDEX test_index(ID);
|
||||
|
||||
-- error ER_DBACCESS_DENIED_ERROR
|
||||
CREATE UNIQUE INDEX test_index ON performance_schema.PROCESSLIST(ID);
|
||||
CREATE UNIQUE INDEX test_index ON performance_schema.THREADS(ID);
|
||||
|
@ -19,44 +19,44 @@
|
||||
--source include/have_perfschema.inc
|
||||
|
||||
--replace_column 1 # 2 # 3 # 4 # 5 # 6 #
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
where event_name like 'Wait/Synch/%' limit 1;
|
||||
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
where event_name='FOO';
|
||||
|
||||
--replace_result '\'events_waits_summary_by_event_name' '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
|
||||
--replace_result '\'events_waits_summary_global_by_event_name' '\'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
insert into performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
insert into performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
set event_name='FOO', count_star=1, sum_timer_wait=2, min_timer_wait=3,
|
||||
avg_timer_wait=4, max_timer_wait=5;
|
||||
|
||||
--replace_result '\'events_waits_summary_by_event_name' '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
|
||||
--replace_result '\'events_waits_summary_global_by_event_name' '\'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
update performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
update performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
set count_star=12;
|
||||
|
||||
--replace_result '\'events_waits_summary_by_event_name' '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
|
||||
--replace_result '\'events_waits_summary_global_by_event_name' '\'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
update performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
update performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
set count_star=12 where event_name like "FOO";
|
||||
|
||||
--replace_result '\'events_waits_summary_by_event_name' '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
|
||||
--replace_result '\'events_waits_summary_global_by_event_name' '\'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
delete from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
delete from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
where count_star=1;
|
||||
|
||||
--replace_result '\'events_waits_summary_by_event_name' '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
|
||||
--replace_result '\'events_waits_summary_global_by_event_name' '\'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
delete from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
delete from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
|
||||
--replace_result '\'events_waits_summary_by_event_name' '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
|
||||
--replace_result '\'events_waits_summary_global_by_event_name' '\'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
|
||||
-- error ER_TABLEACCESS_DENIED_ERROR
|
||||
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME READ;
|
||||
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME READ;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--replace_result '\'events_waits_summary_by_event_name' '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
|
||||
--replace_result '\'events_waits_summary_global_by_event_name' '\'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
|
||||
-- error ER_TABLEACCESS_DENIED_ERROR
|
||||
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME WRITE;
|
||||
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME WRITE;
|
||||
UNLOCK TABLES;
|
||||
|
@ -1,75 +0,0 @@
|
||||
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
# Tests for PERFORMANCE_SCHEMA
|
||||
|
||||
--source include/not_embedded.inc
|
||||
--source include/have_perfschema.inc
|
||||
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
|
||||
select * from performance_schema.SETUP_OBJECTS
|
||||
where object_type = 'TABLE';
|
||||
|
||||
select * from performance_schema.SETUP_OBJECTS
|
||||
where enabled='YES';
|
||||
|
||||
# Not implemented yet
|
||||
--replace_result '\'setup_objects' '\'SETUP_OBJECTS'
|
||||
--error ER_ILLEGAL_HA
|
||||
insert into performance_schema.SETUP_OBJECTS
|
||||
set object_type='TABLE', object_schema='FOO', object_name='BAR',
|
||||
enabled='YES', timed='YES', aggregated='YES';
|
||||
|
||||
# Not implemented yet
|
||||
# --error ER_ILLEGAL_HA
|
||||
update performance_schema.SETUP_OBJECTS
|
||||
set object_type='TABLE';
|
||||
|
||||
# Not implemented yet
|
||||
# --error ER_ILLEGAL_HA
|
||||
update performance_schema.SETUP_OBJECTS
|
||||
set object_schema='ILLEGAL';
|
||||
|
||||
# Not implemented yet
|
||||
# --error ER_ILLEGAL_HA
|
||||
update performance_schema.SETUP_OBJECTS
|
||||
set object_name='ILLEGAL';
|
||||
|
||||
update performance_schema.SETUP_OBJECTS
|
||||
set enabled='NO';
|
||||
|
||||
update performance_schema.SETUP_OBJECTS
|
||||
set timed='NO';
|
||||
|
||||
update performance_schema.SETUP_OBJECTS
|
||||
set aggregated='NO';
|
||||
|
||||
select * from performance_schema.SETUP_OBJECTS;
|
||||
|
||||
update performance_schema.SETUP_OBJECTS
|
||||
set enabled='YES', timed='YES', aggregated='YES';
|
||||
|
||||
delete from performance_schema.SETUP_OBJECTS
|
||||
where object_type = 'TABLE';
|
||||
|
||||
delete from performance_schema.SETUP_OBJECTS;
|
||||
|
||||
LOCK TABLES performance_schema.SETUP_OBJECTS READ;
|
||||
UNLOCK TABLES;
|
||||
|
||||
LOCK TABLES performance_schema.SETUP_OBJECTS WRITE;
|
||||
UNLOCK TABLES;
|
||||
|
@ -19,43 +19,43 @@
|
||||
--source include/have_perfschema.inc
|
||||
|
||||
--replace_column 1 # 2 # 3 #
|
||||
select * from performance_schema.PROCESSLIST
|
||||
select * from performance_schema.THREADS
|
||||
where name like 'Thread/%' limit 1;
|
||||
|
||||
select * from performance_schema.PROCESSLIST
|
||||
select * from performance_schema.THREADS
|
||||
where name='FOO';
|
||||
|
||||
--replace_result '\'processlist' '\'PROCESSLIST'
|
||||
--replace_result '\'threads' '\'THREADS'
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
insert into performance_schema.PROCESSLIST
|
||||
insert into performance_schema.THREADS
|
||||
set name='FOO', thread_id=1, id=2;
|
||||
|
||||
--replace_result '\'processlist' '\'PROCESSLIST'
|
||||
--replace_result '\'threads' '\'THREADS'
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
update performance_schema.PROCESSLIST
|
||||
update performance_schema.THREADS
|
||||
set thread_id=12;
|
||||
|
||||
--replace_result '\'processlist' '\'PROCESSLIST'
|
||||
--replace_result '\'threads' '\'THREADS'
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
update performance_schema.PROCESSLIST
|
||||
update performance_schema.THREADS
|
||||
set thread_id=12 where name like "FOO";
|
||||
|
||||
--replace_result '\'processlist' '\'PROCESSLIST'
|
||||
--replace_result '\'threads' '\'THREADS'
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
delete from performance_schema.PROCESSLIST
|
||||
delete from performance_schema.THREADS
|
||||
where id=1;
|
||||
|
||||
--replace_result '\'processlist' '\'PROCESSLIST'
|
||||
--replace_result '\'threads' '\'THREADS'
|
||||
--error ER_TABLEACCESS_DENIED_ERROR
|
||||
delete from performance_schema.PROCESSLIST;
|
||||
delete from performance_schema.THREADS;
|
||||
|
||||
--replace_result '\'processlist' '\'PROCESSLIST'
|
||||
--replace_result '\'threads' '\'THREADS'
|
||||
-- error ER_TABLEACCESS_DENIED_ERROR
|
||||
LOCK TABLES performance_schema.PROCESSLIST READ;
|
||||
LOCK TABLES performance_schema.THREADS READ;
|
||||
UNLOCK TABLES;
|
||||
|
||||
--replace_result '\'processlist' '\'PROCESSLIST'
|
||||
--replace_result '\'threads' '\'THREADS'
|
||||
-- error ER_TABLEACCESS_DENIED_ERROR
|
||||
LOCK TABLES performance_schema.PROCESSLIST WRITE;
|
||||
LOCK TABLES performance_schema.THREADS WRITE;
|
||||
UNLOCK TABLES;
|
||||
|
@ -144,7 +144,7 @@ WHERE FILE_NAME LIKE CONCAT('%', @@tmpdir, '%') ORDER BY NULL;
|
||||
#
|
||||
--disable_result_log
|
||||
SELECT EVENT_NAME, COUNT_STAR, AVG_TIMER_WAIT, SUM_TIMER_WAIT
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
WHERE COUNT_STAR > 0
|
||||
ORDER BY SUM_TIMER_WAIT DESC
|
||||
LIMIT 10;
|
||||
@ -158,7 +158,7 @@ LIMIT 10;
|
||||
SELECT i.user, SUM(TIMER_WAIT) SUM_WAIT
|
||||
# ((TIME_TO_SEC(TIMEDIFF(NOW(), i.startup_time)) * 1000) / SUM(TIMER_WAIT)) * 100 WAIT_PERCENTAGE
|
||||
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
|
||||
INNER JOIN performance_schema.PROCESSLIST p USING (THREAD_ID)
|
||||
INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
|
||||
LEFT JOIN information_schema.PROCESSLIST i USING (ID)
|
||||
GROUP BY i.user
|
||||
ORDER BY SUM_WAIT DESC
|
||||
@ -171,7 +171,7 @@ LIMIT 20;
|
||||
--disable_result_log
|
||||
SELECT h.EVENT_NAME, SUM(h.TIMER_WAIT) TOTAL_WAIT
|
||||
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
|
||||
INNER JOIN performance_schema.PROCESSLIST p USING (THREAD_ID)
|
||||
INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
|
||||
WHERE p.ID = 1
|
||||
GROUP BY h.EVENT_NAME
|
||||
HAVING TOTAL_WAIT > 0;
|
||||
@ -184,7 +184,7 @@ HAVING TOTAL_WAIT > 0;
|
||||
--disable_result_log
|
||||
SELECT i.user, h.operation, SUM(NUMBER_OF_BYTES) bytes
|
||||
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
|
||||
INNER JOIN performance_schema.PROCESSLIST p USING (THREAD_ID)
|
||||
INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
|
||||
LEFT JOIN information_schema.PROCESSLIST i USING (ID)
|
||||
GROUP BY i.user, h.operation
|
||||
HAVING BYTES > 0
|
||||
|
@ -27,7 +27,7 @@
|
||||
--disable_result_log
|
||||
SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
|
||||
WHERE THREAD_ID IN
|
||||
(SELECT THREAD_ID FROM performance_schema.PROCESSLIST)
|
||||
(SELECT THREAD_ID FROM performance_schema.THREADS)
|
||||
AND EVENT_NAME IN
|
||||
(SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS
|
||||
WHERE NAME LIKE "wait/synch/%")
|
||||
|
@ -45,10 +45,10 @@ show variables like "performance_schema_max_thread%";
|
||||
|
||||
# Verification : in this main thread
|
||||
|
||||
select count(*) from performance_schema.PROCESSLIST
|
||||
select count(*) from performance_schema.THREADS
|
||||
where name like "thread/sql/main";
|
||||
|
||||
select count(*) from performance_schema.PROCESSLIST
|
||||
select count(*) from performance_schema.THREADS
|
||||
where name like "thread/sql/OneConnection";
|
||||
|
||||
select event_name, operation,
|
||||
|
@ -29,18 +29,17 @@ show create table COND_INSTANCES;
|
||||
show create table EVENTS_WAITS_CURRENT;
|
||||
show create table EVENTS_WAITS_HISTORY;
|
||||
show create table EVENTS_WAITS_HISTORY_LONG;
|
||||
show create table EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
|
||||
show create table EVENTS_WAITS_SUMMARY_BY_INSTANCE;
|
||||
show create table EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
|
||||
show create table EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
|
||||
show create table FILE_INSTANCES;
|
||||
show create table FILE_SUMMARY_BY_EVENT_NAME;
|
||||
show create table FILE_SUMMARY_BY_INSTANCE;
|
||||
show create table MUTEX_INSTANCES;
|
||||
show create table PERFORMANCE_TIMERS;
|
||||
show create table PROCESSLIST;
|
||||
show create table RWLOCK_INSTANCES;
|
||||
show create table SETUP_CONSUMERS;
|
||||
show create table SETUP_INSTRUMENTS;
|
||||
show create table SETUP_OBJECTS;
|
||||
show create table SETUP_TIMERS;
|
||||
show create table THREADS;
|
||||
|
||||
|
@ -45,7 +45,7 @@ LIMIT 1;
|
||||
--replace_column 1 [EVENT_ID]
|
||||
SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
|
||||
WHERE THREAD_ID IN
|
||||
(SELECT THREAD_ID FROM performance_schema.PROCESSLIST)
|
||||
(SELECT THREAD_ID FROM performance_schema.THREADS)
|
||||
AND EVENT_NAME IN
|
||||
(SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS
|
||||
WHERE NAME LIKE "wait/synch/%")
|
||||
@ -138,7 +138,7 @@ delimiter |;
|
||||
|
||||
CREATE PROCEDURE t_ps_proc(IN tid INT, OUT pid INT)
|
||||
BEGIN
|
||||
SELECT id FROM performance_schema.PROCESSLIST
|
||||
SELECT id FROM performance_schema.THREADS
|
||||
WHERE THREAD_ID = tid INTO pid;
|
||||
END;
|
||||
|
||||
@ -157,7 +157,7 @@ delimiter |;
|
||||
|
||||
CREATE FUNCTION t_ps_func(tid INT) RETURNS int
|
||||
BEGIN
|
||||
return (SELECT id FROM performance_schema.PROCESSLIST
|
||||
return (SELECT id FROM performance_schema.THREADS
|
||||
WHERE THREAD_ID = tid);
|
||||
END;
|
||||
|
||||
|
@ -31,7 +31,7 @@ select variable_value > 0 from information_schema.global_status
|
||||
where variable_name like 'PERFORMANCE_SCHEMA_THREAD_CLASSES_LOST';
|
||||
|
||||
# Expect no instances
|
||||
select count(*) from performance_schema.PROCESSLIST;
|
||||
select count(*) from performance_schema.THREADS;
|
||||
|
||||
# Expect no instances lost
|
||||
show status like "performance_schema_thread_instances_lost";
|
||||
|
@ -33,7 +33,7 @@ show status like "performance_schema_thread_classes_lost";
|
||||
# Expect no instances
|
||||
show variables like "performance_schema_max_thread_instances";
|
||||
|
||||
select count(*) from performance_schema.PROCESSLIST;
|
||||
select count(*) from performance_schema.THREADS;
|
||||
|
||||
# Expect instances lost
|
||||
select variable_value > 0 from information_schema.global_status
|
||||
|
@ -30,14 +30,14 @@ connect (con1, localhost, root, , );
|
||||
|
||||
let $con1_ID=`select connection_id()`;
|
||||
|
||||
let $con1_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
|
||||
let $con1_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID = connection_id()`;
|
||||
|
||||
connect (con2, localhost, root, , );
|
||||
|
||||
let $con2_ID=`select connection_id()`;
|
||||
|
||||
let $con2_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
|
||||
let $con2_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID = connection_id()`;
|
||||
|
||||
connection default;
|
||||
@ -58,7 +58,7 @@ connect (con3, localhost, root, , );
|
||||
|
||||
let $con3_ID=`select connection_id()`;
|
||||
|
||||
let $con3_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
|
||||
let $con3_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID = connection_id()`;
|
||||
|
||||
disconnect con3;
|
||||
@ -82,14 +82,14 @@ connect (con1, localhost, root, , );
|
||||
|
||||
let $con1_ID=`select connection_id()`;
|
||||
|
||||
let $con1_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
|
||||
let $con1_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID = connection_id()`;
|
||||
|
||||
connect (con2, localhost, root, , );
|
||||
|
||||
let $con2_ID=`select connection_id()`;
|
||||
|
||||
let $con2_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
|
||||
let $con2_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID = connection_id()`;
|
||||
|
||||
connection default;
|
||||
@ -108,7 +108,7 @@ connect (con3, localhost, root, , );
|
||||
|
||||
let $con3_ID=`select connection_id()`;
|
||||
|
||||
let $con3_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
|
||||
let $con3_THREAD_ID=`select thread_id from performance_schema.THREADS
|
||||
where ID = connection_id()`;
|
||||
|
||||
disconnect con3;
|
||||
|
@ -241,26 +241,6 @@ PREPARE stmt FROM @str;
|
||||
EXECUTE stmt;
|
||||
DROP PREPARE stmt;
|
||||
|
||||
--
|
||||
-- TABLE EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
|
||||
--
|
||||
|
||||
SET @l1="CREATE TABLE performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME(";
|
||||
SET @l2="EVENT_NAME VARCHAR(128) not null,";
|
||||
SET @l3="COUNT_STAR BIGINT unsigned not null,";
|
||||
SET @l4="SUM_TIMER_WAIT BIGINT unsigned not null,";
|
||||
SET @l5="MIN_TIMER_WAIT BIGINT unsigned not null,";
|
||||
SET @l6="AVG_TIMER_WAIT BIGINT unsigned not null,";
|
||||
SET @l7="MAX_TIMER_WAIT BIGINT unsigned not null";
|
||||
SET @l8=")ENGINE=PERFORMANCE_SCHEMA;";
|
||||
|
||||
SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8);
|
||||
|
||||
SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0');
|
||||
PREPARE stmt FROM @str;
|
||||
EXECUTE stmt;
|
||||
DROP PREPARE stmt;
|
||||
|
||||
--
|
||||
-- TABLE EVENTS_WAITS_SUMMARY_BY_INSTANCE
|
||||
--
|
||||
@ -303,6 +283,26 @@ PREPARE stmt FROM @str;
|
||||
EXECUTE stmt;
|
||||
DROP PREPARE stmt;
|
||||
|
||||
--
|
||||
-- TABLE EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
|
||||
--
|
||||
|
||||
SET @l1="CREATE TABLE performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME(";
|
||||
SET @l2="EVENT_NAME VARCHAR(128) not null,";
|
||||
SET @l3="COUNT_STAR BIGINT unsigned not null,";
|
||||
SET @l4="SUM_TIMER_WAIT BIGINT unsigned not null,";
|
||||
SET @l5="MIN_TIMER_WAIT BIGINT unsigned not null,";
|
||||
SET @l6="AVG_TIMER_WAIT BIGINT unsigned not null,";
|
||||
SET @l7="MAX_TIMER_WAIT BIGINT unsigned not null";
|
||||
SET @l8=")ENGINE=PERFORMANCE_SCHEMA;";
|
||||
|
||||
SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8);
|
||||
|
||||
SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0');
|
||||
PREPARE stmt FROM @str;
|
||||
EXECUTE stmt;
|
||||
DROP PREPARE stmt;
|
||||
|
||||
--
|
||||
-- TABLE FILE_INSTANCES
|
||||
--
|
||||
@ -394,23 +394,6 @@ PREPARE stmt FROM @str;
|
||||
EXECUTE stmt;
|
||||
DROP PREPARE stmt;
|
||||
|
||||
--
|
||||
-- TABLE PROCESSLIST
|
||||
--
|
||||
|
||||
SET @l1="CREATE TABLE performance_schema.PROCESSLIST(";
|
||||
SET @l2="THREAD_ID INTEGER not null,";
|
||||
SET @l3="ID INTEGER not null,";
|
||||
SET @l4="NAME VARCHAR(64) not null";
|
||||
SET @l5=")ENGINE=PERFORMANCE_SCHEMA;";
|
||||
|
||||
SET @cmd=concat(@l1,@l2,@l3,@l4,@l5);
|
||||
|
||||
SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0');
|
||||
PREPARE stmt FROM @str;
|
||||
EXECUTE stmt;
|
||||
DROP PREPARE stmt;
|
||||
|
||||
--
|
||||
-- TABLE RWLOCK_INSTANCES
|
||||
--
|
||||
@ -462,26 +445,6 @@ PREPARE stmt FROM @str;
|
||||
EXECUTE stmt;
|
||||
DROP PREPARE stmt;
|
||||
|
||||
--
|
||||
-- TABLE SETUP_OBJECTS
|
||||
--
|
||||
|
||||
SET @l1="CREATE TABLE performance_schema.SETUP_OBJECTS(";
|
||||
SET @l2="OBJECT_TYPE VARCHAR(64),";
|
||||
SET @l3="OBJECT_SCHEMA VARCHAR(64),";
|
||||
SET @l4="OBJECT_NAME VARCHAR(64),";
|
||||
SET @l5="ENABLED ENUM ('YES', 'NO') not null,";
|
||||
SET @l6="TIMED ENUM ('YES', 'NO') not null,";
|
||||
SET @l7="AGGREGATED ENUM ('YES', 'NO') not null";
|
||||
SET @l8=")ENGINE=PERFORMANCE_SCHEMA;";
|
||||
|
||||
SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8);
|
||||
|
||||
SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0');
|
||||
PREPARE stmt FROM @str;
|
||||
EXECUTE stmt;
|
||||
DROP PREPARE stmt;
|
||||
|
||||
--
|
||||
-- TABLE SETUP_TIMERS
|
||||
--
|
||||
@ -498,3 +461,20 @@ PREPARE stmt FROM @str;
|
||||
EXECUTE stmt;
|
||||
DROP PREPARE stmt;
|
||||
|
||||
--
|
||||
-- TABLE THREADS
|
||||
--
|
||||
|
||||
SET @l1="CREATE TABLE performance_schema.THREADS(";
|
||||
SET @l2="THREAD_ID INTEGER not null,";
|
||||
SET @l3="ID INTEGER not null,";
|
||||
SET @l4="NAME VARCHAR(64) not null";
|
||||
SET @l5=")ENGINE=PERFORMANCE_SCHEMA;";
|
||||
|
||||
SET @cmd=concat(@l1,@l2,@l3,@l4,@l5);
|
||||
|
||||
SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0');
|
||||
PREPARE stmt FROM @str;
|
||||
EXECUTE stmt;
|
||||
DROP PREPARE stmt;
|
||||
|
||||
|
@ -38,15 +38,15 @@ SET(PERFSCHEMA_SOURCES ha_perfschema.h
|
||||
table_all_instr.h
|
||||
table_events_waits.h
|
||||
table_events_waits_summary.h
|
||||
table_ews_global_by_event_name.h
|
||||
table_file_instances.h
|
||||
table_file_summary.h
|
||||
table_performance_timers.h
|
||||
table_processlist.h
|
||||
table_setup_consumers.h
|
||||
table_setup_instruments.h
|
||||
table_setup_objects.h
|
||||
table_setup_timers.h
|
||||
table_sync_instances.h
|
||||
table_threads.h
|
||||
ha_perfschema.cc
|
||||
pfs.cc
|
||||
pfs_column_values.cc
|
||||
@ -60,15 +60,15 @@ SET(PERFSCHEMA_SOURCES ha_perfschema.h
|
||||
table_all_instr.cc
|
||||
table_events_waits.cc
|
||||
table_events_waits_summary.cc
|
||||
table_ews_global_by_event_name.cc
|
||||
table_file_instances.cc
|
||||
table_file_summary.cc
|
||||
table_performance_timers.cc
|
||||
table_processlist.cc
|
||||
table_setup_consumers.cc
|
||||
table_setup_instruments.cc
|
||||
table_setup_objects.cc
|
||||
table_setup_timers.cc
|
||||
table_sync_instances.cc
|
||||
table_threads.cc
|
||||
pfs_atomic.cc
|
||||
pfs_check.cc
|
||||
)
|
||||
|
@ -39,12 +39,12 @@ noinst_HEADERS = ha_perfschema.h pfs_engine_table.h pfs.h pfs_server.h \
|
||||
table_setup_instruments.h table_performance_timers.h \
|
||||
table_setup_timers.h \
|
||||
table_setup_consumers.h table_events_waits.h \
|
||||
pfs_events_waits.h pfs_timer.h table_processlist.h \
|
||||
pfs_events_waits.h pfs_timer.h table_threads.h \
|
||||
table_sync_instances.h \
|
||||
table_events_waits_summary.h pfs_stat.h \
|
||||
table_all_instr.h \
|
||||
table_ews_global_by_event_name.h table_all_instr.h \
|
||||
table_file_instances.h table_file_summary.h \
|
||||
table_setup_objects.h pfs_lock.h pfs_atomic.h
|
||||
pfs_lock.h pfs_atomic.h
|
||||
|
||||
PSE_SOURCES = ha_perfschema.cc pfs_engine_table.cc pfs.cc pfs_server.cc \
|
||||
pfs_global.cc pfs_instr_class.cc pfs_instr.cc \
|
||||
@ -52,12 +52,12 @@ PSE_SOURCES = ha_perfschema.cc pfs_engine_table.cc pfs.cc pfs_server.cc \
|
||||
table_setup_instruments.cc table_performance_timers.cc \
|
||||
table_setup_timers.cc \
|
||||
table_setup_consumers.cc table_events_waits.cc \
|
||||
pfs_events_waits.cc pfs_timer.cc table_processlist.cc \
|
||||
pfs_events_waits.cc pfs_timer.cc table_threads.cc \
|
||||
table_sync_instances.cc \
|
||||
table_events_waits_summary.cc \
|
||||
table_all_instr.cc \
|
||||
table_ews_global_by_event_name.cc table_all_instr.cc \
|
||||
table_file_instances.cc table_file_summary.cc \
|
||||
table_setup_objects.cc pfs_atomic.cc pfs_check.cc
|
||||
pfs_atomic.cc pfs_check.cc
|
||||
|
||||
EXTRA_LIBRARIES = libperfschema.a
|
||||
noinst_LIBRARIES = @plugin_perfschema_static_target@
|
||||
|
@ -23,11 +23,11 @@
|
||||
#include "table_events_waits.h"
|
||||
#include "table_setup_consumers.h"
|
||||
#include "table_setup_instruments.h"
|
||||
#include "table_setup_objects.h"
|
||||
#include "table_setup_timers.h"
|
||||
#include "table_performance_timers.h"
|
||||
#include "table_processlist.h"
|
||||
#include "table_threads.h"
|
||||
#include "table_events_waits_summary.h"
|
||||
#include "table_ews_global_by_event_name.h"
|
||||
#include "table_sync_instances.h"
|
||||
#include "table_file_instances.h"
|
||||
#include "table_file_summary.h"
|
||||
@ -52,13 +52,12 @@ static PFS_engine_table_share *all_shares[]=
|
||||
&table_events_waits_history_long::m_share,
|
||||
&table_setup_consumers::m_share,
|
||||
&table_setup_instruments::m_share,
|
||||
&table_setup_objects::m_share,
|
||||
&table_setup_timers::m_share,
|
||||
&table_performance_timers::m_share,
|
||||
&table_processlist::m_share,
|
||||
&table_threads::m_share,
|
||||
&table_events_waits_summary_by_thread_by_event_name::m_share,
|
||||
&table_events_waits_summary_by_event_name::m_share,
|
||||
&table_events_waits_summary_by_instance::m_share,
|
||||
&table_ews_global_by_event_name::m_share,
|
||||
&table_file_summary_by_event_name::m_share,
|
||||
&table_file_summary_by_instance::m_share,
|
||||
&table_mutex_instances::m_share,
|
||||
|
@ -338,144 +338,6 @@ int table_events_waits_summary_by_thread_by_event_name
|
||||
return 0;
|
||||
}
|
||||
|
||||
THR_LOCK table_events_waits_summary_by_event_name::m_table_lock;
|
||||
|
||||
static const TABLE_FIELD_TYPE ews_by_event_name_field_types[]=
|
||||
{
|
||||
{
|
||||
{ C_STRING_WITH_LEN("EVENT_NAME") },
|
||||
{ C_STRING_WITH_LEN("varchar(128)") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("COUNT_STAR") },
|
||||
{ C_STRING_WITH_LEN("bigint(20)") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("SUM_TIMER_WAIT") },
|
||||
{ C_STRING_WITH_LEN("bigint(20)") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("MIN_TIMER_WAIT") },
|
||||
{ C_STRING_WITH_LEN("bigint(20)") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("AVG_TIMER_WAIT") },
|
||||
{ C_STRING_WITH_LEN("bigint(20)") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("MAX_TIMER_WAIT") },
|
||||
{ C_STRING_WITH_LEN("bigint(20)") },
|
||||
{ NULL, 0}
|
||||
}
|
||||
};
|
||||
|
||||
TABLE_FIELD_DEF
|
||||
table_events_waits_summary_by_event_name::m_field_def=
|
||||
{ 6, ews_by_event_name_field_types };
|
||||
|
||||
PFS_engine_table_share
|
||||
table_events_waits_summary_by_event_name::m_share=
|
||||
{
|
||||
{ C_STRING_WITH_LEN("EVENTS_WAITS_SUMMARY_BY_EVENT_NAME") },
|
||||
&pfs_truncatable_acl,
|
||||
&table_events_waits_summary_by_event_name::create,
|
||||
NULL, /* write_row */
|
||||
&table_events_waits_summary_by_event_name::delete_all_rows,
|
||||
1000, /* records */
|
||||
sizeof(pos_all_instr_class),
|
||||
&m_table_lock,
|
||||
&m_field_def,
|
||||
false /* checked */
|
||||
};
|
||||
|
||||
PFS_engine_table* table_events_waits_summary_by_event_name::create(void)
|
||||
{
|
||||
return new table_events_waits_summary_by_event_name();
|
||||
}
|
||||
|
||||
int table_events_waits_summary_by_event_name::delete_all_rows(void)
|
||||
{
|
||||
reset_instrument_class_waits();
|
||||
return 0;
|
||||
}
|
||||
|
||||
table_events_waits_summary_by_event_name
|
||||
::table_events_waits_summary_by_event_name()
|
||||
: table_all_instr_class(&m_share)
|
||||
{}
|
||||
|
||||
void table_events_waits_summary_by_event_name
|
||||
::make_instr_row(PFS_instr_class *klass)
|
||||
{
|
||||
m_row.m_name= klass->m_name;
|
||||
m_row.m_name_length= klass->m_name_length;
|
||||
|
||||
m_row.m_count= klass->m_wait_stat.m_count;
|
||||
m_row.m_sum= klass->m_wait_stat.m_sum;
|
||||
m_row.m_min= klass->m_wait_stat.m_min;
|
||||
m_row.m_max= klass->m_wait_stat.m_max;
|
||||
|
||||
if (m_row.m_count)
|
||||
m_row.m_avg= m_row.m_sum / m_row.m_count;
|
||||
else
|
||||
{
|
||||
m_row.m_min= 0;
|
||||
m_row.m_avg= 0;
|
||||
}
|
||||
}
|
||||
|
||||
int table_events_waits_summary_by_event_name
|
||||
::read_row_values(TABLE *table, unsigned char *, Field **fields,
|
||||
bool read_all)
|
||||
{
|
||||
Field *f;
|
||||
|
||||
/* Set the null bits */
|
||||
DBUG_ASSERT(table->s->null_bytes == 0);
|
||||
|
||||
/*
|
||||
The row always exist,
|
||||
the instrument classes are static and never disappear.
|
||||
*/
|
||||
|
||||
for (; (f= *fields) ; fields++)
|
||||
{
|
||||
if (read_all || bitmap_is_set(table->read_set, f->field_index))
|
||||
{
|
||||
switch(f->field_index)
|
||||
{
|
||||
case 0: /* NAME */
|
||||
set_field_varchar_utf8(f, m_row.m_name, m_row.m_name_length);
|
||||
break;
|
||||
case 1: /* COUNT */
|
||||
set_field_ulonglong(f, m_row.m_count);
|
||||
break;
|
||||
case 2: /* SUM */
|
||||
set_field_ulonglong(f, m_row.m_sum);
|
||||
break;
|
||||
case 3: /* MIN */
|
||||
set_field_ulonglong(f, m_row.m_min);
|
||||
break;
|
||||
case 4: /* AVG */
|
||||
set_field_ulonglong(f, m_row.m_avg);
|
||||
break;
|
||||
case 5: /* MAX */
|
||||
set_field_ulonglong(f, m_row.m_max);
|
||||
break;
|
||||
default:
|
||||
DBUG_ASSERT(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
THR_LOCK table_events_waits_summary_by_instance::m_table_lock;
|
||||
|
||||
static const TABLE_FIELD_TYPE ews_by_instance_field_types[]=
|
||||
|
@ -144,58 +144,6 @@ private:
|
||||
pos_events_waits_summary_by_thread_by_event_name m_next_pos;
|
||||
};
|
||||
|
||||
/** A row of PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME. */
|
||||
struct row_events_waits_summary_by_event_name
|
||||
{
|
||||
/** Column EVENT_NAME. */
|
||||
const char *m_name;
|
||||
/** Length in bytes of @c m_name. */
|
||||
uint m_name_length;
|
||||
/** Column COUNT_STAR. */
|
||||
ulonglong m_count;
|
||||
/** Column SUM_TIMER_WAIT. */
|
||||
ulonglong m_sum;
|
||||
/** Column MIN_TIMER_WAIT. */
|
||||
ulonglong m_min;
|
||||
/** Column AVG_TIMER_WAIT. */
|
||||
ulonglong m_avg;
|
||||
/** Column MAX_TIMER_WAIT. */
|
||||
ulonglong m_max;
|
||||
};
|
||||
|
||||
/** Table PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME. */
|
||||
class table_events_waits_summary_by_event_name : public table_all_instr_class
|
||||
{
|
||||
public:
|
||||
/** Table share */
|
||||
static PFS_engine_table_share m_share;
|
||||
static PFS_engine_table* create();
|
||||
static int delete_all_rows();
|
||||
|
||||
protected:
|
||||
virtual void make_instr_row(PFS_instr_class *klass);
|
||||
|
||||
virtual int read_row_values(TABLE *table,
|
||||
unsigned char *buf,
|
||||
Field **fields,
|
||||
bool read_all);
|
||||
|
||||
table_events_waits_summary_by_event_name();
|
||||
|
||||
public:
|
||||
~table_events_waits_summary_by_event_name()
|
||||
{}
|
||||
|
||||
private:
|
||||
/** Table share lock. */
|
||||
static THR_LOCK m_table_lock;
|
||||
/** Fields definition. */
|
||||
static TABLE_FIELD_DEF m_field_def;
|
||||
|
||||
/** Current row. */
|
||||
row_events_waits_summary_by_event_name m_row;
|
||||
};
|
||||
|
||||
/** A row of PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_BY_INSTANCE. */
|
||||
struct row_events_waits_summary_by_instance
|
||||
{
|
||||
|
166
storage/perfschema/table_ews_global_by_event_name.cc
Normal file
166
storage/perfschema/table_ews_global_by_event_name.cc
Normal file
@ -0,0 +1,166 @@
|
||||
/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
|
||||
|
||||
/**
|
||||
@file storage/perfschema/table_ews_global_by_event_name.cc
|
||||
Table EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME (implementation).
|
||||
*/
|
||||
|
||||
#include "my_global.h"
|
||||
#include "my_pthread.h"
|
||||
#include "pfs_instr_class.h"
|
||||
#include "pfs_column_types.h"
|
||||
#include "pfs_column_values.h"
|
||||
#include "table_ews_global_by_event_name.h"
|
||||
#include "pfs_global.h"
|
||||
|
||||
THR_LOCK table_ews_global_by_event_name::m_table_lock;
|
||||
|
||||
static const TABLE_FIELD_TYPE field_types[]=
|
||||
{
|
||||
{
|
||||
{ C_STRING_WITH_LEN("EVENT_NAME") },
|
||||
{ C_STRING_WITH_LEN("varchar(128)") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("COUNT_STAR") },
|
||||
{ C_STRING_WITH_LEN("bigint(20)") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("SUM_TIMER_WAIT") },
|
||||
{ C_STRING_WITH_LEN("bigint(20)") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("MIN_TIMER_WAIT") },
|
||||
{ C_STRING_WITH_LEN("bigint(20)") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("AVG_TIMER_WAIT") },
|
||||
{ C_STRING_WITH_LEN("bigint(20)") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("MAX_TIMER_WAIT") },
|
||||
{ C_STRING_WITH_LEN("bigint(20)") },
|
||||
{ NULL, 0}
|
||||
}
|
||||
};
|
||||
|
||||
TABLE_FIELD_DEF
|
||||
table_ews_global_by_event_name::m_field_def=
|
||||
{ 6, field_types };
|
||||
|
||||
PFS_engine_table_share
|
||||
table_ews_global_by_event_name::m_share=
|
||||
{
|
||||
{ C_STRING_WITH_LEN("EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME") },
|
||||
&pfs_truncatable_acl,
|
||||
&table_ews_global_by_event_name::create,
|
||||
NULL, /* write_row */
|
||||
&table_ews_global_by_event_name::delete_all_rows,
|
||||
1000, /* records */
|
||||
sizeof(pos_all_instr_class),
|
||||
&m_table_lock,
|
||||
&m_field_def,
|
||||
false /* checked */
|
||||
};
|
||||
|
||||
PFS_engine_table* table_ews_global_by_event_name::create(void)
|
||||
{
|
||||
return new table_ews_global_by_event_name();
|
||||
}
|
||||
|
||||
int table_ews_global_by_event_name::delete_all_rows(void)
|
||||
{
|
||||
reset_instrument_class_waits();
|
||||
return 0;
|
||||
}
|
||||
|
||||
table_ews_global_by_event_name
|
||||
::table_ews_global_by_event_name()
|
||||
: table_all_instr_class(&m_share)
|
||||
{}
|
||||
|
||||
void table_ews_global_by_event_name
|
||||
::make_instr_row(PFS_instr_class *klass)
|
||||
{
|
||||
m_row.m_name= klass->m_name;
|
||||
m_row.m_name_length= klass->m_name_length;
|
||||
|
||||
m_row.m_count= klass->m_wait_stat.m_count;
|
||||
m_row.m_sum= klass->m_wait_stat.m_sum;
|
||||
m_row.m_min= klass->m_wait_stat.m_min;
|
||||
m_row.m_max= klass->m_wait_stat.m_max;
|
||||
|
||||
if (m_row.m_count)
|
||||
m_row.m_avg= m_row.m_sum / m_row.m_count;
|
||||
else
|
||||
{
|
||||
m_row.m_min= 0;
|
||||
m_row.m_avg= 0;
|
||||
}
|
||||
}
|
||||
|
||||
int table_ews_global_by_event_name
|
||||
::read_row_values(TABLE *table, unsigned char *, Field **fields,
|
||||
bool read_all)
|
||||
{
|
||||
Field *f;
|
||||
|
||||
/* Set the null bits */
|
||||
DBUG_ASSERT(table->s->null_bytes == 0);
|
||||
|
||||
/*
|
||||
The row always exist,
|
||||
the instrument classes are static and never disappear.
|
||||
*/
|
||||
|
||||
for (; (f= *fields) ; fields++)
|
||||
{
|
||||
if (read_all || bitmap_is_set(table->read_set, f->field_index))
|
||||
{
|
||||
switch(f->field_index)
|
||||
{
|
||||
case 0: /* NAME */
|
||||
set_field_varchar_utf8(f, m_row.m_name, m_row.m_name_length);
|
||||
break;
|
||||
case 1: /* COUNT */
|
||||
set_field_ulonglong(f, m_row.m_count);
|
||||
break;
|
||||
case 2: /* SUM */
|
||||
set_field_ulonglong(f, m_row.m_sum);
|
||||
break;
|
||||
case 3: /* MIN */
|
||||
set_field_ulonglong(f, m_row.m_min);
|
||||
break;
|
||||
case 4: /* AVG */
|
||||
set_field_ulonglong(f, m_row.m_avg);
|
||||
break;
|
||||
case 5: /* MAX */
|
||||
set_field_ulonglong(f, m_row.m_max);
|
||||
break;
|
||||
default:
|
||||
DBUG_ASSERT(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
88
storage/perfschema/table_ews_global_by_event_name.h
Normal file
88
storage/perfschema/table_ews_global_by_event_name.h
Normal file
@ -0,0 +1,88 @@
|
||||
/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
|
||||
|
||||
#ifndef TABLE_EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME_H
|
||||
#define TABLE_EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME_H
|
||||
|
||||
/**
|
||||
@file storage/perfschema/table_ews_global_by_event_name.h
|
||||
Table EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME (declarations).
|
||||
*/
|
||||
|
||||
#include "pfs_column_types.h"
|
||||
#include "pfs_engine_table.h"
|
||||
#include "pfs_instr_class.h"
|
||||
#include "pfs_instr.h"
|
||||
#include "table_all_instr.h"
|
||||
|
||||
/**
|
||||
@addtogroup Performance_schema_tables
|
||||
@{
|
||||
*/
|
||||
|
||||
/** A row of PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME. */
|
||||
struct row_ews_global_by_event_name
|
||||
{
|
||||
/** Column EVENT_NAME. */
|
||||
const char *m_name;
|
||||
/** Length in bytes of @c m_name. */
|
||||
uint m_name_length;
|
||||
/** Column COUNT_STAR. */
|
||||
ulonglong m_count;
|
||||
/** Column SUM_TIMER_WAIT. */
|
||||
ulonglong m_sum;
|
||||
/** Column MIN_TIMER_WAIT. */
|
||||
ulonglong m_min;
|
||||
/** Column AVG_TIMER_WAIT. */
|
||||
ulonglong m_avg;
|
||||
/** Column MAX_TIMER_WAIT. */
|
||||
ulonglong m_max;
|
||||
};
|
||||
|
||||
/** Table PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME. */
|
||||
class table_ews_global_by_event_name : public table_all_instr_class
|
||||
{
|
||||
public:
|
||||
/** Table share */
|
||||
static PFS_engine_table_share m_share;
|
||||
static PFS_engine_table* create();
|
||||
static int delete_all_rows();
|
||||
|
||||
protected:
|
||||
virtual void make_instr_row(PFS_instr_class *klass);
|
||||
|
||||
virtual int read_row_values(TABLE *table,
|
||||
unsigned char *buf,
|
||||
Field **fields,
|
||||
bool read_all);
|
||||
|
||||
table_ews_global_by_event_name();
|
||||
|
||||
public:
|
||||
~table_ews_global_by_event_name()
|
||||
{}
|
||||
|
||||
private:
|
||||
/** Table share lock. */
|
||||
static THR_LOCK m_table_lock;
|
||||
/** Fields definition. */
|
||||
static TABLE_FIELD_DEF m_field_def;
|
||||
|
||||
/** Current row. */
|
||||
row_ews_global_by_event_name m_row;
|
||||
};
|
||||
|
||||
/** @} */
|
||||
#endif
|
@ -1,281 +0,0 @@
|
||||
/* Copyright (C) 2008-2009 Sun Microsystems, Inc
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
/**
|
||||
@file storage/perfschema/table_setup_objects.cc
|
||||
Table SETUP_OBJECTS (implementation).
|
||||
*/
|
||||
|
||||
#include "sql_priv.h"
|
||||
#include "unireg.h"
|
||||
#include "pfs_instr_class.h"
|
||||
#include "pfs_column_types.h"
|
||||
#include "pfs_column_values.h"
|
||||
#include "table_setup_objects.h"
|
||||
#include "pfs_global.h"
|
||||
|
||||
THR_LOCK table_setup_objects::m_table_lock;
|
||||
|
||||
static const TABLE_FIELD_TYPE field_types[]=
|
||||
{
|
||||
{
|
||||
{ C_STRING_WITH_LEN("OBJECT_TYPE") },
|
||||
{ C_STRING_WITH_LEN("varchar(64)") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("OBJECT_SCHEMA") },
|
||||
{ C_STRING_WITH_LEN("varchar(64)") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("OBJECT_NAME") },
|
||||
{ C_STRING_WITH_LEN("varchar(64)") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("ENABLED") },
|
||||
{ C_STRING_WITH_LEN("enum(\'YES\',\'NO\')") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("TIMED") },
|
||||
{ C_STRING_WITH_LEN("enum(\'YES\',\'NO\')") },
|
||||
{ NULL, 0}
|
||||
},
|
||||
{
|
||||
{ C_STRING_WITH_LEN("AGGREGATED") },
|
||||
{ C_STRING_WITH_LEN("enum(\'YES\',\'NO\')") },
|
||||
{ NULL, 0}
|
||||
}
|
||||
};
|
||||
|
||||
TABLE_FIELD_DEF
|
||||
table_setup_objects::m_field_def=
|
||||
{ 6, field_types };
|
||||
|
||||
PFS_engine_table_share
|
||||
table_setup_objects::m_share=
|
||||
{
|
||||
{ C_STRING_WITH_LEN("SETUP_OBJECTS") },
|
||||
&pfs_editable_acl,
|
||||
&table_setup_objects::create,
|
||||
table_setup_objects::write_row,
|
||||
table_setup_objects::delete_all_rows,
|
||||
1000, /* records */
|
||||
sizeof(pos_setup_objects),
|
||||
&m_table_lock,
|
||||
&m_field_def,
|
||||
false /* checked */
|
||||
};
|
||||
|
||||
PFS_engine_table* table_setup_objects::create(void)
|
||||
{
|
||||
return new table_setup_objects();
|
||||
}
|
||||
|
||||
int table_setup_objects::write_row(TABLE *table, unsigned char *buf,
|
||||
Field **fields)
|
||||
{
|
||||
/* Not implemented */
|
||||
return HA_ERR_WRONG_COMMAND;
|
||||
}
|
||||
|
||||
int table_setup_objects::delete_all_rows(void)
|
||||
{
|
||||
/* Not implemented */
|
||||
return HA_ERR_WRONG_COMMAND;
|
||||
}
|
||||
|
||||
table_setup_objects::table_setup_objects()
|
||||
: PFS_engine_table(&m_share, &m_pos),
|
||||
m_row_exists(false), m_pos(), m_next_pos()
|
||||
{}
|
||||
|
||||
void table_setup_objects::reset_position(void)
|
||||
{
|
||||
m_pos.reset();
|
||||
m_next_pos.reset();
|
||||
}
|
||||
|
||||
int table_setup_objects::rnd_next(void)
|
||||
{
|
||||
PFS_table_share *table_share;
|
||||
|
||||
for (m_pos.set_at(&m_next_pos);
|
||||
m_pos.has_more_view();
|
||||
m_pos.next_view())
|
||||
{
|
||||
switch (m_pos.m_index_1) {
|
||||
case pos_setup_objects::VIEW_TABLE:
|
||||
for ( ; m_pos.m_index_2 < table_share_max; m_pos.m_index_2++)
|
||||
{
|
||||
table_share= &table_share_array[m_pos.m_index_2];
|
||||
if (table_share->m_lock.is_populated())
|
||||
{
|
||||
make_row(table_share);
|
||||
m_next_pos.set_after(&m_pos);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case pos_setup_objects::VIEW_EVENT:
|
||||
case pos_setup_objects::VIEW_PROCEDURE:
|
||||
case pos_setup_objects::VIEW_FUNCTION:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return HA_ERR_END_OF_FILE;
|
||||
}
|
||||
|
||||
int table_setup_objects::rnd_pos(const void *pos)
|
||||
{
|
||||
PFS_table_share *share;
|
||||
|
||||
set_position(pos);
|
||||
|
||||
switch (m_pos.m_index_1) {
|
||||
case pos_setup_objects::VIEW_TABLE:
|
||||
DBUG_ASSERT(m_pos.m_index_2 < table_share_max);
|
||||
share= &table_share_array[m_pos.m_index_2];
|
||||
if (share->m_lock.is_populated())
|
||||
{
|
||||
make_row(share);
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
case pos_setup_objects::VIEW_EVENT:
|
||||
case pos_setup_objects::VIEW_PROCEDURE:
|
||||
case pos_setup_objects::VIEW_FUNCTION:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return HA_ERR_RECORD_DELETED;
|
||||
}
|
||||
|
||||
void table_setup_objects::make_row(PFS_table_share *share)
|
||||
{
|
||||
pfs_lock lock;
|
||||
|
||||
m_row_exists= false;
|
||||
if (share == NULL)
|
||||
return;
|
||||
|
||||
share->m_lock.begin_optimistic_lock(&lock);
|
||||
|
||||
m_row.m_schema_name= &share->m_schema_name[0];
|
||||
m_row.m_schema_name_length= share->m_schema_name_length;
|
||||
m_row.m_object_name= &share->m_table_name[0];
|
||||
m_row.m_object_name_length= share->m_table_name_length;
|
||||
m_row.m_enabled_ptr= &share->m_enabled;
|
||||
m_row.m_timed_ptr= &share->m_timed;
|
||||
m_row.m_aggregated_ptr= &share->m_aggregated;
|
||||
|
||||
if (share->m_lock.end_optimistic_lock(&lock))
|
||||
m_row_exists= true;
|
||||
}
|
||||
|
||||
int table_setup_objects::read_row_values(TABLE *table,
|
||||
unsigned char *buf,
|
||||
Field **fields,
|
||||
bool read_all)
|
||||
{
|
||||
Field *f;
|
||||
|
||||
if (unlikely(! m_row_exists))
|
||||
return HA_ERR_RECORD_DELETED;
|
||||
|
||||
/* Set the null bits */
|
||||
DBUG_ASSERT(table->s->null_bytes == 1);
|
||||
buf[0]= 0;
|
||||
|
||||
for (; (f= *fields) ; fields++)
|
||||
{
|
||||
if (read_all || bitmap_is_set(table->read_set, f->field_index))
|
||||
{
|
||||
switch(f->field_index)
|
||||
{
|
||||
case 0: /* OBJECT_TYPE */
|
||||
set_field_varchar_utf8(f, "TABLE", 5);
|
||||
break;
|
||||
case 1: /* OBJECT_SCHEMA */
|
||||
set_field_varchar_utf8(f, m_row.m_schema_name,
|
||||
m_row.m_schema_name_length);
|
||||
break;
|
||||
case 2: /* OBJECT_NAME */
|
||||
set_field_varchar_utf8(f, m_row.m_object_name,
|
||||
m_row.m_object_name_length);
|
||||
break;
|
||||
case 3: /* ENABLED */
|
||||
set_field_enum(f, (*m_row.m_enabled_ptr) ? ENUM_YES : ENUM_NO);
|
||||
break;
|
||||
case 4: /* TIMED */
|
||||
set_field_enum(f, (*m_row.m_timed_ptr) ? ENUM_YES : ENUM_NO);
|
||||
break;
|
||||
case 5: /* AGGREGATED */
|
||||
set_field_enum(f, (*m_row.m_aggregated_ptr) ? ENUM_YES : ENUM_NO);
|
||||
break;
|
||||
default:
|
||||
DBUG_ASSERT(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int table_setup_objects::update_row_values(TABLE *table,
|
||||
const unsigned char *,
|
||||
unsigned char *,
|
||||
Field **fields)
|
||||
{
|
||||
Field *f;
|
||||
enum_yes_no value;
|
||||
|
||||
for (; (f= *fields) ; fields++)
|
||||
{
|
||||
if (bitmap_is_set(table->write_set, f->field_index))
|
||||
{
|
||||
switch(f->field_index)
|
||||
{
|
||||
case 0: /* OBJECT_TYPE */
|
||||
case 1: /* OBJECT_SCHEMA */
|
||||
case 2: /* OBJECT_NAME */
|
||||
my_error(ER_WRONG_PERFSCHEMA_USAGE, MYF(0));
|
||||
return HA_ERR_WRONG_COMMAND;
|
||||
case 3: /* ENABLED */
|
||||
value= (enum_yes_no) get_field_enum(f);
|
||||
*m_row.m_enabled_ptr= (value == ENUM_YES) ? true : false;
|
||||
break;
|
||||
case 4: /* TIMED */
|
||||
value= (enum_yes_no) get_field_enum(f);
|
||||
*m_row.m_timed_ptr= (value == ENUM_YES) ? true : false;
|
||||
break;
|
||||
case 5: /* AGGREGATED */
|
||||
value= (enum_yes_no) get_field_enum(f);
|
||||
*m_row.m_aggregated_ptr= (value == ENUM_YES) ? true : false;
|
||||
break;
|
||||
default:
|
||||
DBUG_ASSERT(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,125 +0,0 @@
|
||||
/* Copyright (C) 2008-2009 Sun Microsystems, Inc
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
#ifndef TABLE_SETUP_OBJECTS_H
|
||||
#define TABLE_SETUP_OBJECTS_H
|
||||
|
||||
/**
|
||||
@file storage/perfschema/table_setup_objects.h
|
||||
Table SETUP_OBJECTS (declarations).
|
||||
*/
|
||||
|
||||
#include "pfs_instr_class.h"
|
||||
#include "pfs_engine_table.h"
|
||||
|
||||
/**
|
||||
@addtogroup Performance_schema_tables
|
||||
@{
|
||||
*/
|
||||
|
||||
/** A row of PERFORMANCE_SCHEMA.SETUP_OBJECTS. */
|
||||
struct row_setup_objects
|
||||
{
|
||||
/** Column SCHEMA_NAME. */
|
||||
const char *m_schema_name;
|
||||
/** Length in bytes of @c m_schema_name. */
|
||||
uint m_schema_name_length;
|
||||
/** Column OBJECT_NAME. */
|
||||
const char *m_object_name;
|
||||
/** Length in bytes of @c m_object_name. */
|
||||
uint m_object_name_length;
|
||||
/** Column ENABLED. */
|
||||
bool *m_enabled_ptr;
|
||||
/** Column TIMED. */
|
||||
bool *m_timed_ptr;
|
||||
/** Column AGGREGATED. */
|
||||
bool *m_aggregated_ptr;
|
||||
};
|
||||
|
||||
/** Position of a cursor on PERFORMANCE_SCHEMA.SETUP_OBJECTS. */
|
||||
struct pos_setup_objects : public PFS_double_index,
|
||||
public PFS_object_view_constants
|
||||
{
|
||||
pos_setup_objects()
|
||||
: PFS_double_index(VIEW_TABLE, 0)
|
||||
{}
|
||||
|
||||
inline void reset(void)
|
||||
{
|
||||
m_index_1= VIEW_TABLE;
|
||||
m_index_2= 0;
|
||||
}
|
||||
|
||||
inline bool has_more_view(void)
|
||||
{ return (m_index_1 <= VIEW_FUNCTION); }
|
||||
|
||||
inline void next_view(void)
|
||||
{
|
||||
m_index_1++;
|
||||
m_index_2= 0;
|
||||
}
|
||||
};
|
||||
|
||||
/** Table PERFORMANCE_SCHEMA.SETUP_OBJECTS. */
|
||||
class table_setup_objects : public PFS_engine_table
|
||||
{
|
||||
public:
|
||||
/** Table share. */
|
||||
static PFS_engine_table_share m_share;
|
||||
static PFS_engine_table* create();
|
||||
static int write_row(TABLE *table, unsigned char *buf, Field **fields);
|
||||
static int delete_all_rows();
|
||||
|
||||
virtual int rnd_next();
|
||||
virtual int rnd_pos(const void *pos);
|
||||
virtual void reset_position(void);
|
||||
|
||||
protected:
|
||||
virtual int read_row_values(TABLE *table,
|
||||
unsigned char *buf,
|
||||
Field **fields,
|
||||
bool read_all);
|
||||
|
||||
virtual int update_row_values(TABLE *table,
|
||||
const unsigned char *old_buf,
|
||||
unsigned char *new_buf,
|
||||
Field **fields);
|
||||
|
||||
table_setup_objects();
|
||||
|
||||
public:
|
||||
~table_setup_objects()
|
||||
{}
|
||||
|
||||
private:
|
||||
void make_row(PFS_table_share *share);
|
||||
|
||||
/** Table share lock. */
|
||||
static THR_LOCK m_table_lock;
|
||||
/** Fields definition. */
|
||||
static TABLE_FIELD_DEF m_field_def;
|
||||
|
||||
/** Current row. */
|
||||
row_setup_objects m_row;
|
||||
/** True is the current row exists. */
|
||||
bool m_row_exists;
|
||||
/** Current position. */
|
||||
pos_setup_objects m_pos;
|
||||
/** Next position. */
|
||||
pos_setup_objects m_next_pos;
|
||||
};
|
||||
|
||||
/** @} */
|
||||
#endif
|
@ -14,17 +14,17 @@
|
||||
51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
|
||||
|
||||
/**
|
||||
@file storage/perfschema/table_processlist.cc
|
||||
Table PROCESSLIST (implementation).
|
||||
@file storage/perfschema/table_threads.cc
|
||||
Table THREADS (implementation).
|
||||
*/
|
||||
|
||||
#include "my_global.h"
|
||||
#include "my_pthread.h"
|
||||
#include "table_processlist.h"
|
||||
#include "table_threads.h"
|
||||
#include "pfs_instr_class.h"
|
||||
#include "pfs_instr.h"
|
||||
|
||||
THR_LOCK table_processlist::m_table_lock;
|
||||
THR_LOCK table_threads::m_table_lock;
|
||||
|
||||
static const TABLE_FIELD_TYPE field_types[]=
|
||||
{
|
||||
@ -46,15 +46,15 @@ static const TABLE_FIELD_TYPE field_types[]=
|
||||
};
|
||||
|
||||
TABLE_FIELD_DEF
|
||||
table_processlist::m_field_def=
|
||||
table_threads::m_field_def=
|
||||
{ 3, field_types };
|
||||
|
||||
PFS_engine_table_share
|
||||
table_processlist::m_share=
|
||||
table_threads::m_share=
|
||||
{
|
||||
{ C_STRING_WITH_LEN("PROCESSLIST") },
|
||||
{ C_STRING_WITH_LEN("THREADS") },
|
||||
&pfs_readonly_acl,
|
||||
&table_processlist::create,
|
||||
&table_threads::create,
|
||||
NULL, /* write_row */
|
||||
NULL, /* delete_all_rows */
|
||||
1000, /* records */
|
||||
@ -64,23 +64,23 @@ table_processlist::m_share=
|
||||
false /* checked */
|
||||
};
|
||||
|
||||
PFS_engine_table* table_processlist::create(void)
|
||||
PFS_engine_table* table_threads::create(void)
|
||||
{
|
||||
return new table_processlist();
|
||||
return new table_threads();
|
||||
}
|
||||
|
||||
table_processlist::table_processlist()
|
||||
table_threads::table_threads()
|
||||
: PFS_engine_table(&m_share, &m_pos),
|
||||
m_row_exists(false), m_pos(0), m_next_pos(0)
|
||||
{}
|
||||
|
||||
void table_processlist::reset_position(void)
|
||||
void table_threads::reset_position(void)
|
||||
{
|
||||
m_pos.m_index= 0;
|
||||
m_next_pos.m_index= 0;
|
||||
}
|
||||
|
||||
int table_processlist::rnd_next(void)
|
||||
int table_threads::rnd_next(void)
|
||||
{
|
||||
PFS_thread *pfs;
|
||||
|
||||
@ -100,7 +100,7 @@ int table_processlist::rnd_next(void)
|
||||
return HA_ERR_END_OF_FILE;
|
||||
}
|
||||
|
||||
int table_processlist::rnd_pos(const void *pos)
|
||||
int table_threads::rnd_pos(const void *pos)
|
||||
{
|
||||
PFS_thread *pfs;
|
||||
|
||||
@ -116,7 +116,7 @@ int table_processlist::rnd_pos(const void *pos)
|
||||
return HA_ERR_RECORD_DELETED;
|
||||
}
|
||||
|
||||
void table_processlist::make_row(PFS_thread *pfs)
|
||||
void table_threads::make_row(PFS_thread *pfs)
|
||||
{
|
||||
pfs_lock lock;
|
||||
PFS_thread_class *safe_class;
|
||||
@ -139,10 +139,10 @@ void table_processlist::make_row(PFS_thread *pfs)
|
||||
m_row_exists= true;
|
||||
}
|
||||
|
||||
int table_processlist::read_row_values(TABLE *table,
|
||||
unsigned char *,
|
||||
Field **fields,
|
||||
bool read_all)
|
||||
int table_threads::read_row_values(TABLE *table,
|
||||
unsigned char *,
|
||||
Field **fields,
|
||||
bool read_all)
|
||||
{
|
||||
Field *f;
|
||||
|
@ -13,12 +13,12 @@
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
|
||||
|
||||
#ifndef TABLE_PROCESSIST_H
|
||||
#define TABLE_PROCESSIST_H
|
||||
#ifndef TABLE_THREADS_H
|
||||
#define TABLE_THREADS_H
|
||||
|
||||
/**
|
||||
@file storage/perfschema/table_processlist.h
|
||||
Table PROCESSLIST (declarations).
|
||||
@file storage/perfschema/table_threads.h
|
||||
Table THREADS (declarations).
|
||||
*/
|
||||
|
||||
#include "pfs_column_types.h"
|
||||
@ -31,8 +31,8 @@ struct PFS_thread;
|
||||
@{
|
||||
*/
|
||||
|
||||
/** A row of PERFORMANCE_SCHEMA.PROCESSLIST. */
|
||||
struct row_processlist
|
||||
/** A row of PERFORMANCE_SCHEMA.THREADS. */
|
||||
struct row_threads
|
||||
{
|
||||
/** Column THREAD_ID. */
|
||||
ulong m_thread_internal_id;
|
||||
@ -44,8 +44,8 @@ struct row_processlist
|
||||
uint m_name_length;
|
||||
};
|
||||
|
||||
/** Table PERFORMANCE_SCHEMA.PROCESSLIST. */
|
||||
class table_processlist : public PFS_engine_table
|
||||
/** Table PERFORMANCE_SCHEMA.THREADS. */
|
||||
class table_threads : public PFS_engine_table
|
||||
{
|
||||
public:
|
||||
/** Table share. */
|
||||
@ -63,10 +63,10 @@ protected:
|
||||
bool read_all);
|
||||
|
||||
protected:
|
||||
table_processlist();
|
||||
table_threads();
|
||||
|
||||
public:
|
||||
~table_processlist()
|
||||
~table_threads()
|
||||
{}
|
||||
|
||||
private:
|
||||
@ -78,7 +78,7 @@ private:
|
||||
static TABLE_FIELD_DEF m_field_def;
|
||||
|
||||
/** Current row. */
|
||||
row_processlist m_row;
|
||||
row_threads m_row;
|
||||
/** True is the current row exists. */
|
||||
bool m_row_exists;
|
||||
/** Current position. */
|
Loading…
x
Reference in New Issue
Block a user