Commit 26f1efd9 authored by Marc Alff's avatar Marc Alff

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.
parent ad264fa2
...@@ -25,17 +25,17 @@ update performance_schema.SETUP_CONSUMERS set enabled='YES'; ...@@ -25,17 +25,17 @@ update performance_schema.SETUP_CONSUMERS set enabled='YES';
connect (con1, localhost, root, , ); 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())`; where ID in (select connection_id())`;
connect (con2, localhost, root, , ); 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())`; where ID in (select connection_id())`;
connect (con3, localhost, root, , ); 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())`; where ID in (select connection_id())`;
connection default; connection default;
...@@ -49,6 +49,6 @@ prepare stmt_dump_events from ...@@ -49,6 +49,6 @@ prepare stmt_dump_events from
where thread_id=? order by event_id;"; where thread_id=? order by event_id;";
prepare stmt_dump_thread from 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 --enable_query_log
...@@ -29,20 +29,19 @@ select * from performance_schema.COND_INSTANCES; ...@@ -29,20 +29,19 @@ select * from performance_schema.COND_INSTANCES;
select * from performance_schema.EVENTS_WAITS_CURRENT; select * from performance_schema.EVENTS_WAITS_CURRENT;
select * from performance_schema.EVENTS_WAITS_HISTORY; select * from performance_schema.EVENTS_WAITS_HISTORY;
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG; 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_INSTANCE;
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; 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_INSTANCES;
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME; select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE; select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.MUTEX_INSTANCES;
select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.PROCESSLIST;
select * from performance_schema.RWLOCK_INSTANCES; select * from performance_schema.RWLOCK_INSTANCES;
select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_OBJECTS;
select * from performance_schema.SETUP_TIMERS; select * from performance_schema.SETUP_TIMERS;
select * from performance_schema.THREADS;
--enable_result_log --enable_result_log
# This has a stable output, printing the result: # This has a stable output, printing the result:
......
...@@ -4,7 +4,7 @@ update performance_schema.SETUP_INSTRUMENTS set enabled = 'NO'; ...@@ -4,7 +4,7 @@ update performance_schema.SETUP_INSTRUMENTS set enabled = 'NO';
update performance_schema.SETUP_CONSUMERS 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_EVENT_NAME;
truncate table performance_schema.FILE_SUMMARY_BY_INSTANCE; 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_INSTANCE;
truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
update performance_schema.SETUP_CONSUMERS set enabled = 'YES'; update performance_schema.SETUP_CONSUMERS set enabled = 'YES';
...@@ -49,14 +49,14 @@ OR @dump_all; ...@@ -49,14 +49,14 @@ OR @dump_all;
EVENT_NAME SUM_NUMBER_OF_BYTES_WRITE SUM(i.SUM_NUMBER_OF_BYTES_WRITE) EVENT_NAME SUM_NUMBER_OF_BYTES_WRITE SUM(i.SUM_NUMBER_OF_BYTES_WRITE)
"Verifying waits aggregate consistency (instance)" "Verifying waits aggregate consistency (instance)"
SELECT EVENT_NAME, e.SUM_TIMER_WAIT, SUM(i.SUM_TIMER_WAIT) 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) JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
GROUP BY EVENT_NAME GROUP BY EVENT_NAME
HAVING (e.SUM_TIMER_WAIT < SUM(i.SUM_TIMER_WAIT)) HAVING (e.SUM_TIMER_WAIT < SUM(i.SUM_TIMER_WAIT))
OR @dump_all; OR @dump_all;
EVENT_NAME SUM_TIMER_WAIT SUM(i.SUM_TIMER_WAIT) EVENT_NAME SUM_TIMER_WAIT SUM(i.SUM_TIMER_WAIT)
SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(i.MIN_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) JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
GROUP BY EVENT_NAME GROUP BY EVENT_NAME
HAVING (e.MIN_TIMER_WAIT > MIN(i.MIN_TIMER_WAIT)) HAVING (e.MIN_TIMER_WAIT > MIN(i.MIN_TIMER_WAIT))
...@@ -64,7 +64,7 @@ AND (MIN(i.MIN_TIMER_WAIT) != 0) ...@@ -64,7 +64,7 @@ AND (MIN(i.MIN_TIMER_WAIT) != 0)
OR @dump_all; OR @dump_all;
EVENT_NAME MIN_TIMER_WAIT MIN(i.MIN_TIMER_WAIT) EVENT_NAME MIN_TIMER_WAIT MIN(i.MIN_TIMER_WAIT)
SELECT EVENT_NAME, e.MAX_TIMER_WAIT, MAX(i.MAX_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) JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
GROUP BY EVENT_NAME GROUP BY EVENT_NAME
HAVING (e.MAX_TIMER_WAIT < MAX(i.MAX_TIMER_WAIT)) HAVING (e.MAX_TIMER_WAIT < MAX(i.MAX_TIMER_WAIT))
...@@ -72,7 +72,7 @@ OR @dump_all; ...@@ -72,7 +72,7 @@ OR @dump_all;
EVENT_NAME MAX_TIMER_WAIT MAX(i.MAX_TIMER_WAIT) EVENT_NAME MAX_TIMER_WAIT MAX(i.MAX_TIMER_WAIT)
"Verifying waits aggregate consistency (thread)" "Verifying waits aggregate consistency (thread)"
SELECT EVENT_NAME, e.SUM_TIMER_WAIT, SUM(t.SUM_TIMER_WAIT) 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 JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
USING (EVENT_NAME) USING (EVENT_NAME)
GROUP BY EVENT_NAME GROUP BY EVENT_NAME
...@@ -80,7 +80,7 @@ HAVING (e.SUM_TIMER_WAIT < SUM(t.SUM_TIMER_WAIT)) ...@@ -80,7 +80,7 @@ HAVING (e.SUM_TIMER_WAIT < SUM(t.SUM_TIMER_WAIT))
OR @dump_all; OR @dump_all;
EVENT_NAME SUM_TIMER_WAIT SUM(t.SUM_TIMER_WAIT) EVENT_NAME SUM_TIMER_WAIT SUM(t.SUM_TIMER_WAIT)
SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(t.MIN_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 JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
USING (EVENT_NAME) USING (EVENT_NAME)
GROUP BY EVENT_NAME GROUP BY EVENT_NAME
...@@ -89,7 +89,7 @@ AND (MIN(t.MIN_TIMER_WAIT) != 0) ...@@ -89,7 +89,7 @@ AND (MIN(t.MIN_TIMER_WAIT) != 0)
OR @dump_all; OR @dump_all;
EVENT_NAME MIN_TIMER_WAIT MIN(t.MIN_TIMER_WAIT) EVENT_NAME MIN_TIMER_WAIT MIN(t.MIN_TIMER_WAIT)
SELECT EVENT_NAME, e.MAX_TIMER_WAIT, MAX(t.MAX_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 JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
USING (EVENT_NAME) USING (EVENT_NAME)
GROUP BY EVENT_NAME GROUP BY EVENT_NAME
......
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;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME; truncate table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
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 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' 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); 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' ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
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'
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' 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. 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' 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' ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
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; where event_name like 'Wait/Synch/%' limit 1;
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT 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 select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
where event_name='FOO'; where event_name='FOO';
EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT 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 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, set event_name='FOO', count_star=1, sum_timer_wait=2, min_timer_wait=3,
avg_timer_wait=4, max_timer_wait=5; 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' ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
update performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME update performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
set count_star=12; set count_star=12;
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
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"; 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' 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_BY_EVENT_NAME delete from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
where count_star=1; where count_star=1;
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' 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_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_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_BY_EVENT_NAME READ; 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_BY_EVENT_NAME' ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
UNLOCK TABLES; UNLOCK TABLES;
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME WRITE; 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_BY_EVENT_NAME' ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
UNLOCK TABLES; UNLOCK TABLES;
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;
select * from performance_schema.PROCESSLIST select * from performance_schema.THREADS
where name like 'Thread/%' limit 1; where name like 'Thread/%' limit 1;
THREAD_ID ID NAME THREAD_ID ID NAME
# # # # # #
select * from performance_schema.PROCESSLIST select * from performance_schema.THREADS
where name='FOO'; where name='FOO';
THREAD_ID ID NAME THREAD_ID ID NAME
insert into performance_schema.PROCESSLIST insert into performance_schema.THREADS
set name='FOO', thread_id=1, id=2; set name='FOO', thread_id=1, id=2;
ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'PROCESSLIST' ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'THREADS'
update performance_schema.PROCESSLIST update performance_schema.THREADS
set thread_id=12; set thread_id=12;
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'PROCESSLIST' ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'THREADS'
update performance_schema.PROCESSLIST update performance_schema.THREADS
set thread_id=12 where name like "FOO"; set thread_id=12 where name like "FOO";
ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'PROCESSLIST' ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'THREADS'
delete from performance_schema.PROCESSLIST delete from performance_schema.THREADS
where id=1; where id=1;
ERROR 42000: DELETE 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.PROCESSLIST; delete from performance_schema.THREADS;
ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'PROCESSLIST' ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'THREADS'
LOCK TABLES performance_schema.PROCESSLIST READ; LOCK TABLES performance_schema.THREADS READ;
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'PROCESSLIST' ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'THREADS'
UNLOCK TABLES; UNLOCK TABLES;
LOCK TABLES performance_schema.PROCESSLIST WRITE; LOCK TABLES performance_schema.THREADS WRITE;
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'PROCESSLIST' ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'THREADS'
UNLOCK TABLES; UNLOCK TABLES;
...@@ -90,27 +90,27 @@ SUM(SUM_NUMBER_OF_BYTES_WRITE) AS sum_num_bytes_write ...@@ -90,27 +90,27 @@ SUM(SUM_NUMBER_OF_BYTES_WRITE) AS sum_num_bytes_write
FROM performance_schema.FILE_SUMMARY_BY_INSTANCE FROM performance_schema.FILE_SUMMARY_BY_INSTANCE
WHERE FILE_NAME LIKE CONCAT('%', @@tmpdir, '%') ORDER BY NULL; WHERE FILE_NAME LIKE CONCAT('%', @@tmpdir, '%') ORDER BY NULL;
SELECT EVENT_NAME, COUNT_STAR, AVG_TIMER_WAIT, SUM_TIMER_WAIT 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 WHERE COUNT_STAR > 0
ORDER BY SUM_TIMER_WAIT DESC ORDER BY SUM_TIMER_WAIT DESC
LIMIT 10; LIMIT 10;
SELECT i.user, SUM(TIMER_WAIT) SUM_WAIT SELECT i.user, SUM(TIMER_WAIT) SUM_WAIT
# ((TIME_TO_SEC(TIMEDIFF(NOW(), i.startup_time)) * 1000) / SUM(TIMER_WAIT)) * 100 WAIT_PERCENTAGE # ((TIME_TO_SEC(TIMEDIFF(NOW(), i.startup_time)) * 1000) / SUM(TIMER_WAIT)) * 100 WAIT_PERCENTAGE
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h 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) LEFT JOIN information_schema.PROCESSLIST i USING (ID)
GROUP BY i.user GROUP BY i.user
ORDER BY SUM_WAIT DESC ORDER BY SUM_WAIT DESC
LIMIT 20; LIMIT 20;
SELECT h.EVENT_NAME, SUM(h.TIMER_WAIT) TOTAL_WAIT SELECT h.EVENT_NAME, SUM(h.TIMER_WAIT) TOTAL_WAIT
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h 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 WHERE p.ID = 1
GROUP BY h.EVENT_NAME GROUP BY h.EVENT_NAME
HAVING TOTAL_WAIT > 0; HAVING TOTAL_WAIT > 0;
SELECT i.user, h.operation, SUM(NUMBER_OF_BYTES) bytes SELECT i.user, h.operation, SUM(NUMBER_OF_BYTES) bytes
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h 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) LEFT JOIN information_schema.PROCESSLIST i USING (ID)
GROUP BY i.user, h.operation GROUP BY i.user, h.operation
HAVING BYTES > 0 HAVING BYTES > 0
......
...@@ -6,20 +6,19 @@ performance_schema COND_INSTANCES def ...@@ -6,20 +6,19 @@ performance_schema COND_INSTANCES def
performance_schema EVENTS_WAITS_CURRENT def performance_schema EVENTS_WAITS_CURRENT def
performance_schema EVENTS_WAITS_HISTORY def performance_schema EVENTS_WAITS_HISTORY def
performance_schema EVENTS_WAITS_HISTORY_LONG 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_INSTANCE def
performance_schema EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 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_INSTANCES def
performance_schema FILE_SUMMARY_BY_EVENT_NAME def performance_schema FILE_SUMMARY_BY_EVENT_NAME def
performance_schema FILE_SUMMARY_BY_INSTANCE def performance_schema FILE_SUMMARY_BY_INSTANCE def
performance_schema MUTEX_INSTANCES def performance_schema MUTEX_INSTANCES def
performance_schema PERFORMANCE_TIMERS def performance_schema PERFORMANCE_TIMERS def
performance_schema PROCESSLIST def
performance_schema RWLOCK_INSTANCES def performance_schema RWLOCK_INSTANCES def
performance_schema SETUP_CONSUMERS def performance_schema SETUP_CONSUMERS def
performance_schema SETUP_INSTRUMENTS def performance_schema SETUP_INSTRUMENTS def
performance_schema SETUP_OBJECTS def
performance_schema SETUP_TIMERS def performance_schema SETUP_TIMERS def
performance_schema THREADS def
select upper(TABLE_NAME), TABLE_TYPE, ENGINE select upper(TABLE_NAME), TABLE_TYPE, ENGINE
from information_schema.tables from information_schema.tables
where TABLE_SCHEMA='performance_schema'; where TABLE_SCHEMA='performance_schema';
...@@ -28,20 +27,19 @@ COND_INSTANCES BASE TABLE PERFORMANCE_SCHEMA ...@@ -28,20 +27,19 @@ COND_INSTANCES BASE TABLE PERFORMANCE_SCHEMA
EVENTS_WAITS_CURRENT BASE TABLE PERFORMANCE_SCHEMA EVENTS_WAITS_CURRENT BASE TABLE PERFORMANCE_SCHEMA
EVENTS_WAITS_HISTORY BASE TABLE PERFORMANCE_SCHEMA EVENTS_WAITS_HISTORY BASE TABLE PERFORMANCE_SCHEMA
EVENTS_WAITS_HISTORY_LONG 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_INSTANCE BASE TABLE PERFORMANCE_SCHEMA
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 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_INSTANCES BASE TABLE PERFORMANCE_SCHEMA
FILE_SUMMARY_BY_EVENT_NAME BASE TABLE PERFORMANCE_SCHEMA FILE_SUMMARY_BY_EVENT_NAME BASE TABLE PERFORMANCE_SCHEMA
FILE_SUMMARY_BY_INSTANCE BASE TABLE PERFORMANCE_SCHEMA FILE_SUMMARY_BY_INSTANCE BASE TABLE PERFORMANCE_SCHEMA
MUTEX_INSTANCES BASE TABLE PERFORMANCE_SCHEMA MUTEX_INSTANCES BASE TABLE PERFORMANCE_SCHEMA
PERFORMANCE_TIMERS BASE TABLE PERFORMANCE_SCHEMA PERFORMANCE_TIMERS BASE TABLE PERFORMANCE_SCHEMA
PROCESSLIST BASE TABLE PERFORMANCE_SCHEMA
RWLOCK_INSTANCES BASE TABLE PERFORMANCE_SCHEMA RWLOCK_INSTANCES BASE TABLE PERFORMANCE_SCHEMA
SETUP_CONSUMERS BASE TABLE PERFORMANCE_SCHEMA SETUP_CONSUMERS BASE TABLE PERFORMANCE_SCHEMA
SETUP_INSTRUMENTS BASE TABLE PERFORMANCE_SCHEMA SETUP_INSTRUMENTS BASE TABLE PERFORMANCE_SCHEMA
SETUP_OBJECTS BASE TABLE PERFORMANCE_SCHEMA
SETUP_TIMERS BASE TABLE PERFORMANCE_SCHEMA SETUP_TIMERS BASE TABLE PERFORMANCE_SCHEMA
THREADS BASE TABLE PERFORMANCE_SCHEMA
select upper(TABLE_NAME), VERSION, ROW_FORMAT select upper(TABLE_NAME), VERSION, ROW_FORMAT
from information_schema.tables from information_schema.tables
where TABLE_SCHEMA='performance_schema'; where TABLE_SCHEMA='performance_schema';
...@@ -50,20 +48,19 @@ COND_INSTANCES 10 Dynamic ...@@ -50,20 +48,19 @@ COND_INSTANCES 10 Dynamic
EVENTS_WAITS_CURRENT 10 Dynamic EVENTS_WAITS_CURRENT 10 Dynamic
EVENTS_WAITS_HISTORY 10 Dynamic EVENTS_WAITS_HISTORY 10 Dynamic
EVENTS_WAITS_HISTORY_LONG 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_INSTANCE 10 Dynamic
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 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_INSTANCES 10 Dynamic
FILE_SUMMARY_BY_EVENT_NAME 10 Dynamic FILE_SUMMARY_BY_EVENT_NAME 10 Dynamic
FILE_SUMMARY_BY_INSTANCE 10 Dynamic FILE_SUMMARY_BY_INSTANCE 10 Dynamic
MUTEX_INSTANCES 10 Dynamic MUTEX_INSTANCES 10 Dynamic
PERFORMANCE_TIMERS 10 Fixed PERFORMANCE_TIMERS 10 Fixed
PROCESSLIST 10 Dynamic
RWLOCK_INSTANCES 10 Dynamic RWLOCK_INSTANCES 10 Dynamic
SETUP_CONSUMERS 10 Dynamic SETUP_CONSUMERS 10 Dynamic
SETUP_INSTRUMENTS 10 Dynamic SETUP_INSTRUMENTS 10 Dynamic
SETUP_OBJECTS 10 Dynamic
SETUP_TIMERS 10 Dynamic SETUP_TIMERS 10 Dynamic
THREADS 10 Dynamic
select upper(TABLE_NAME), TABLE_ROWS, AVG_ROW_LENGTH select upper(TABLE_NAME), TABLE_ROWS, AVG_ROW_LENGTH
from information_schema.tables from information_schema.tables
where TABLE_SCHEMA='performance_schema'; where TABLE_SCHEMA='performance_schema';
...@@ -72,20 +69,19 @@ COND_INSTANCES 1000 0 ...@@ -72,20 +69,19 @@ COND_INSTANCES 1000 0
EVENTS_WAITS_CURRENT 1000 0 EVENTS_WAITS_CURRENT 1000 0
EVENTS_WAITS_HISTORY 1000 0 EVENTS_WAITS_HISTORY 1000 0
EVENTS_WAITS_HISTORY_LONG 10000 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_INSTANCE 1000 0
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 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_INSTANCES 1000 0
FILE_SUMMARY_BY_EVENT_NAME 1000 0 FILE_SUMMARY_BY_EVENT_NAME 1000 0
FILE_SUMMARY_BY_INSTANCE 1000 0 FILE_SUMMARY_BY_INSTANCE 1000 0
MUTEX_INSTANCES 1000 0 MUTEX_INSTANCES 1000 0
PERFORMANCE_TIMERS 5 0 PERFORMANCE_TIMERS 5 0
PROCESSLIST 1000 0
RWLOCK_INSTANCES 1000 0 RWLOCK_INSTANCES 1000 0
SETUP_CONSUMERS 8 0 SETUP_CONSUMERS 8 0
SETUP_INSTRUMENTS 1000 0 SETUP_INSTRUMENTS 1000 0
SETUP_OBJECTS 1000 0
SETUP_TIMERS 1 0 SETUP_TIMERS 1 0
THREADS 1000 0
select upper(TABLE_NAME), DATA_LENGTH, MAX_DATA_LENGTH select upper(TABLE_NAME), DATA_LENGTH, MAX_DATA_LENGTH
from information_schema.tables from information_schema.tables
where TABLE_SCHEMA='performance_schema'; where TABLE_SCHEMA='performance_schema';
...@@ -94,20 +90,19 @@ COND_INSTANCES 0 0 ...@@ -94,20 +90,19 @@ COND_INSTANCES 0 0
EVENTS_WAITS_CURRENT 0 0 EVENTS_WAITS_CURRENT 0 0
EVENTS_WAITS_HISTORY 0 0 EVENTS_WAITS_HISTORY 0 0
EVENTS_WAITS_HISTORY_LONG 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_INSTANCE 0 0
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 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_INSTANCES 0 0
FILE_SUMMARY_BY_EVENT_NAME 0 0 FILE_SUMMARY_BY_EVENT_NAME 0 0
FILE_SUMMARY_BY_INSTANCE 0 0 FILE_SUMMARY_BY_INSTANCE 0 0
MUTEX_INSTANCES 0 0 MUTEX_INSTANCES 0 0
PERFORMANCE_TIMERS 0 0 PERFORMANCE_TIMERS 0 0
PROCESSLIST 0 0
RWLOCK_INSTANCES 0 0 RWLOCK_INSTANCES 0 0
SETUP_CONSUMERS 0 0 SETUP_CONSUMERS 0 0
SETUP_INSTRUMENTS 0 0 SETUP_INSTRUMENTS 0 0
SETUP_OBJECTS 0 0
SETUP_TIMERS 0 0 SETUP_TIMERS 0 0
THREADS 0 0
select upper(TABLE_NAME), INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT select upper(TABLE_NAME), INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT
from information_schema.tables from information_schema.tables
where TABLE_SCHEMA='performance_schema'; where TABLE_SCHEMA='performance_schema';
...@@ -116,20 +111,19 @@ COND_INSTANCES 0 0 NULL ...@@ -116,20 +111,19 @@ COND_INSTANCES 0 0 NULL
EVENTS_WAITS_CURRENT 0 0 NULL EVENTS_WAITS_CURRENT 0 0 NULL
EVENTS_WAITS_HISTORY 0 0 NULL EVENTS_WAITS_HISTORY 0 0 NULL
EVENTS_WAITS_HISTORY_LONG 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_INSTANCE 0 0 NULL
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 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_INSTANCES 0 0 NULL
FILE_SUMMARY_BY_EVENT_NAME 0 0 NULL FILE_SUMMARY_BY_EVENT_NAME 0 0 NULL
FILE_SUMMARY_BY_INSTANCE 0 0 NULL FILE_SUMMARY_BY_INSTANCE 0 0 NULL
MUTEX_INSTANCES 0 0 NULL MUTEX_INSTANCES 0 0 NULL
PERFORMANCE_TIMERS 0 0 NULL PERFORMANCE_TIMERS 0 0 NULL
PROCESSLIST 0 0 NULL
RWLOCK_INSTANCES 0 0 NULL RWLOCK_INSTANCES 0 0 NULL
SETUP_CONSUMERS 0 0 NULL SETUP_CONSUMERS 0 0 NULL
SETUP_INSTRUMENTS 0 0 NULL SETUP_INSTRUMENTS 0 0 NULL
SETUP_OBJECTS 0 0 NULL
SETUP_TIMERS 0 0 NULL SETUP_TIMERS 0 0 NULL
THREADS 0 0 NULL
select upper(TABLE_NAME), CREATE_TIME, UPDATE_TIME, CHECK_TIME select upper(TABLE_NAME), CREATE_TIME, UPDATE_TIME, CHECK_TIME
from information_schema.tables from information_schema.tables
where TABLE_SCHEMA='performance_schema'; where TABLE_SCHEMA='performance_schema';
...@@ -138,20 +132,19 @@ COND_INSTANCES NULL NULL NULL ...@@ -138,20 +132,19 @@ COND_INSTANCES NULL NULL NULL
EVENTS_WAITS_CURRENT NULL NULL NULL EVENTS_WAITS_CURRENT NULL NULL NULL
EVENTS_WAITS_HISTORY NULL NULL NULL EVENTS_WAITS_HISTORY NULL NULL NULL
EVENTS_WAITS_HISTORY_LONG 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_INSTANCE NULL NULL NULL
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 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_INSTANCES NULL NULL NULL
FILE_SUMMARY_BY_EVENT_NAME NULL NULL NULL FILE_SUMMARY_BY_EVENT_NAME NULL NULL NULL
FILE_SUMMARY_BY_INSTANCE NULL NULL NULL FILE_SUMMARY_BY_INSTANCE NULL NULL NULL
MUTEX_INSTANCES NULL NULL NULL MUTEX_INSTANCES NULL NULL NULL
PERFORMANCE_TIMERS NULL NULL NULL PERFORMANCE_TIMERS NULL NULL NULL
PROCESSLIST NULL NULL NULL
RWLOCK_INSTANCES NULL NULL NULL RWLOCK_INSTANCES NULL NULL NULL
SETUP_CONSUMERS NULL NULL NULL SETUP_CONSUMERS NULL NULL NULL
SETUP_INSTRUMENTS NULL NULL NULL SETUP_INSTRUMENTS NULL NULL NULL
SETUP_OBJECTS NULL NULL NULL
SETUP_TIMERS NULL NULL NULL SETUP_TIMERS NULL NULL NULL
THREADS NULL NULL NULL
select upper(TABLE_NAME), TABLE_COLLATION, CHECKSUM select upper(TABLE_NAME), TABLE_COLLATION, CHECKSUM
from information_schema.tables from information_schema.tables
where TABLE_SCHEMA='performance_schema'; where TABLE_SCHEMA='performance_schema';
...@@ -160,20 +153,19 @@ COND_INSTANCES utf8_general_ci NULL ...@@ -160,20 +153,19 @@ COND_INSTANCES utf8_general_ci NULL
EVENTS_WAITS_CURRENT utf8_general_ci NULL EVENTS_WAITS_CURRENT utf8_general_ci NULL
EVENTS_WAITS_HISTORY utf8_general_ci NULL EVENTS_WAITS_HISTORY utf8_general_ci NULL
EVENTS_WAITS_HISTORY_LONG 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_INSTANCE utf8_general_ci NULL
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 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_INSTANCES utf8_general_ci NULL
FILE_SUMMARY_BY_EVENT_NAME utf8_general_ci NULL FILE_SUMMARY_BY_EVENT_NAME utf8_general_ci NULL
FILE_SUMMARY_BY_INSTANCE utf8_general_ci NULL FILE_SUMMARY_BY_INSTANCE utf8_general_ci NULL
MUTEX_INSTANCES utf8_general_ci NULL MUTEX_INSTANCES utf8_general_ci NULL
PERFORMANCE_TIMERS utf8_general_ci NULL PERFORMANCE_TIMERS utf8_general_ci NULL
PROCESSLIST utf8_general_ci NULL
RWLOCK_INSTANCES utf8_general_ci NULL RWLOCK_INSTANCES utf8_general_ci NULL
SETUP_CONSUMERS utf8_general_ci NULL SETUP_CONSUMERS utf8_general_ci NULL
SETUP_INSTRUMENTS utf8_general_ci NULL SETUP_INSTRUMENTS utf8_general_ci NULL
SETUP_OBJECTS utf8_general_ci NULL
SETUP_TIMERS utf8_general_ci NULL SETUP_TIMERS utf8_general_ci NULL
THREADS utf8_general_ci NULL
select upper(TABLE_NAME), TABLE_COMMENT select upper(TABLE_NAME), TABLE_COMMENT
from information_schema.tables from information_schema.tables
where TABLE_SCHEMA='performance_schema'; where TABLE_SCHEMA='performance_schema';
...@@ -182,17 +174,16 @@ COND_INSTANCES ...@@ -182,17 +174,16 @@ COND_INSTANCES
EVENTS_WAITS_CURRENT EVENTS_WAITS_CURRENT
EVENTS_WAITS_HISTORY EVENTS_WAITS_HISTORY
EVENTS_WAITS_HISTORY_LONG EVENTS_WAITS_HISTORY_LONG
EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
EVENTS_WAITS_SUMMARY_BY_INSTANCE EVENTS_WAITS_SUMMARY_BY_INSTANCE
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME
EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
FILE_INSTANCES FILE_INSTANCES
FILE_SUMMARY_BY_EVENT_NAME FILE_SUMMARY_BY_EVENT_NAME
FILE_SUMMARY_BY_INSTANCE FILE_SUMMARY_BY_INSTANCE
MUTEX_INSTANCES MUTEX_INSTANCES
PERFORMANCE_TIMERS PERFORMANCE_TIMERS
PROCESSLIST
RWLOCK_INSTANCES RWLOCK_INSTANCES
SETUP_CONSUMERS SETUP_CONSUMERS
SETUP_INSTRUMENTS SETUP_INSTRUMENTS
SETUP_OBJECTS
SETUP_TIMERS SETUP_TIMERS
THREADS
SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
WHERE THREAD_ID IN WHERE THREAD_ID IN
(SELECT THREAD_ID FROM performance_schema.PROCESSLIST) (SELECT THREAD_ID FROM performance_schema.THREADS)
AND EVENT_NAME IN AND EVENT_NAME IN
(SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS (SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS
WHERE NAME LIKE "wait/synch/%") WHERE NAME LIKE "wait/synch/%")
......
...@@ -17,11 +17,11 @@ show variables like "performance_schema_max_thread%"; ...@@ -17,11 +17,11 @@ show variables like "performance_schema_max_thread%";
Variable_name Value Variable_name Value
performance_schema_max_thread_classes 50 performance_schema_max_thread_classes 50
performance_schema_max_thread_instances 10 performance_schema_max_thread_instances 10
select count(*) from performance_schema.PROCESSLIST select count(*) from performance_schema.THREADS
where name like "thread/sql/main"; where name like "thread/sql/main";
count(*) count(*)
1 1
select count(*) from performance_schema.PROCESSLIST select count(*) from performance_schema.THREADS
where name like "thread/sql/OneConnection"; where name like "thread/sql/OneConnection";
count(*) count(*)
0 0
......
...@@ -12,20 +12,19 @@ COND_INSTANCES ...@@ -12,20 +12,19 @@ COND_INSTANCES
EVENTS_WAITS_CURRENT EVENTS_WAITS_CURRENT
EVENTS_WAITS_HISTORY EVENTS_WAITS_HISTORY
EVENTS_WAITS_HISTORY_LONG EVENTS_WAITS_HISTORY_LONG
EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
EVENTS_WAITS_SUMMARY_BY_INSTANCE EVENTS_WAITS_SUMMARY_BY_INSTANCE
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME
EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
FILE_INSTANCES FILE_INSTANCES
FILE_SUMMARY_BY_EVENT_NAME FILE_SUMMARY_BY_EVENT_NAME
FILE_SUMMARY_BY_INSTANCE FILE_SUMMARY_BY_INSTANCE
MUTEX_INSTANCES MUTEX_INSTANCES
PERFORMANCE_TIMERS PERFORMANCE_TIMERS
PROCESSLIST
RWLOCK_INSTANCES RWLOCK_INSTANCES
SETUP_CONSUMERS SETUP_CONSUMERS
SETUP_INSTRUMENTS SETUP_INSTRUMENTS
SETUP_OBJECTS
SETUP_TIMERS SETUP_TIMERS
THREADS
show create table COND_INSTANCES; show create table COND_INSTANCES;
Table Create Table Table Create Table
COND_INSTANCES CREATE TABLE `COND_INSTANCES` ( COND_INSTANCES CREATE TABLE `COND_INSTANCES` (
...@@ -92,31 +91,31 @@ EVENTS_WAITS_HISTORY_LONG CREATE TABLE `EVENTS_WAITS_HISTORY_LONG` ( ...@@ -92,31 +91,31 @@ EVENTS_WAITS_HISTORY_LONG CREATE TABLE `EVENTS_WAITS_HISTORY_LONG` (
`NUMBER_OF_BYTES` bigint(20) unsigned DEFAULT NULL, `NUMBER_OF_BYTES` bigint(20) unsigned DEFAULT NULL,
`FLAGS` int(10) unsigned DEFAULT NULL `FLAGS` int(10) unsigned DEFAULT NULL
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 ) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
show create table EVENTS_WAITS_SUMMARY_BY_EVENT_NAME; show create table EVENTS_WAITS_SUMMARY_BY_INSTANCE;
Table Create Table Table Create Table
EVENTS_WAITS_SUMMARY_BY_EVENT_NAME CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_EVENT_NAME` ( EVENTS_WAITS_SUMMARY_BY_INSTANCE CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_INSTANCE` (
`EVENT_NAME` varchar(128) NOT NULL, `EVENT_NAME` varchar(128) NOT NULL,
`OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL,
`COUNT_STAR` bigint(20) unsigned NOT NULL, `COUNT_STAR` bigint(20) unsigned NOT NULL,
`SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL, `SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL,
`MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL, `MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL,
`AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL, `AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL,
`MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL `MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 ) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
show create table EVENTS_WAITS_SUMMARY_BY_INSTANCE; show create table EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
Table Create Table Table Create Table
EVENTS_WAITS_SUMMARY_BY_INSTANCE CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_INSTANCE` ( EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME` (
`THREAD_ID` int(11) NOT NULL,
`EVENT_NAME` varchar(128) NOT NULL, `EVENT_NAME` varchar(128) NOT NULL,
`OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL,
`COUNT_STAR` bigint(20) unsigned NOT NULL, `COUNT_STAR` bigint(20) unsigned NOT NULL,
`SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL, `SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL,
`MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL, `MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL,
`AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL, `AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL,
`MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL `MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 ) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
show create table EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; show create table EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
Table Create Table Table Create Table
EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME` ( EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME CREATE TABLE `EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME` (
`THREAD_ID` int(11) NOT NULL,
`EVENT_NAME` varchar(128) NOT NULL, `EVENT_NAME` varchar(128) NOT NULL,
`COUNT_STAR` bigint(20) unsigned NOT NULL, `COUNT_STAR` bigint(20) unsigned NOT NULL,
`SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL, `SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL,
...@@ -165,13 +164,6 @@ PERFORMANCE_TIMERS CREATE TABLE `PERFORMANCE_TIMERS` ( ...@@ -165,13 +164,6 @@ PERFORMANCE_TIMERS CREATE TABLE `PERFORMANCE_TIMERS` (
`TIMER_RESOLUTION` bigint(20) DEFAULT NULL, `TIMER_RESOLUTION` bigint(20) DEFAULT NULL,
`TIMER_OVERHEAD` bigint(20) DEFAULT NULL `TIMER_OVERHEAD` bigint(20) DEFAULT NULL
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 ) 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; show create table RWLOCK_INSTANCES;
Table Create Table Table Create Table
RWLOCK_INSTANCES CREATE TABLE `RWLOCK_INSTANCES` ( RWLOCK_INSTANCES CREATE TABLE `RWLOCK_INSTANCES` (
...@@ -193,19 +185,16 @@ SETUP_INSTRUMENTS CREATE TABLE `SETUP_INSTRUMENTS` ( ...@@ -193,19 +185,16 @@ SETUP_INSTRUMENTS CREATE TABLE `SETUP_INSTRUMENTS` (
`ENABLED` enum('YES','NO') NOT NULL, `ENABLED` enum('YES','NO') NOT NULL,
`TIMED` enum('YES','NO') NOT NULL `TIMED` enum('YES','NO') NOT NULL
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 ) 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; show create table SETUP_TIMERS;
Table Create Table Table Create Table
SETUP_TIMERS CREATE TABLE `SETUP_TIMERS` ( SETUP_TIMERS CREATE TABLE `SETUP_TIMERS` (
`NAME` varchar(64) NOT NULL, `NAME` varchar(64) NOT NULL,
`TIMER_NAME` enum('CYCLE','NANOSECOND','MICROSECOND','MILLISECOND','TICK') NOT NULL `TIMER_NAME` enum('CYCLE','NANOSECOND','MICROSECOND','MILLISECOND','TICK') NOT NULL
) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 ) 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 ...@@ -13,7 +13,7 @@ OPERATION TOTAL
chsize [NUM_BYTES] chsize [NUM_BYTES]
SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
WHERE THREAD_ID IN WHERE THREAD_ID IN
(SELECT THREAD_ID FROM performance_schema.PROCESSLIST) (SELECT THREAD_ID FROM performance_schema.THREADS)
AND EVENT_NAME IN AND EVENT_NAME IN
(SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS (SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS
WHERE NAME LIKE "wait/synch/%") WHERE NAME LIKE "wait/synch/%")
...@@ -86,7 +86,7 @@ DROP TRIGGER t_ps_trigger; ...@@ -86,7 +86,7 @@ DROP TRIGGER t_ps_trigger;
DROP PROCEDURE IF EXISTS t_ps_proc; DROP PROCEDURE IF EXISTS t_ps_proc;
CREATE PROCEDURE t_ps_proc(IN tid INT, OUT pid INT) CREATE PROCEDURE t_ps_proc(IN tid INT, OUT pid INT)
BEGIN BEGIN
SELECT id FROM performance_schema.PROCESSLIST SELECT id FROM performance_schema.THREADS
WHERE THREAD_ID = tid INTO pid; WHERE THREAD_ID = tid INTO pid;
END; END;
| |
...@@ -94,7 +94,7 @@ CALL t_ps_proc(0, @p_id); ...@@ -94,7 +94,7 @@ CALL t_ps_proc(0, @p_id);
DROP FUNCTION IF EXISTS t_ps_proc; DROP FUNCTION IF EXISTS t_ps_proc;
CREATE FUNCTION t_ps_func(tid INT) RETURNS int CREATE FUNCTION t_ps_func(tid INT) RETURNS int
BEGIN BEGIN
return (SELECT id FROM performance_schema.PROCESSLIST return (SELECT id FROM performance_schema.THREADS
WHERE THREAD_ID = tid); WHERE THREAD_ID = tid);
END; END;
| |
......
...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES; ...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
select * from performance_schema.EVENTS_WAITS_CURRENT; select * from performance_schema.EVENTS_WAITS_CURRENT;
select * from performance_schema.EVENTS_WAITS_HISTORY; select * from performance_schema.EVENTS_WAITS_HISTORY;
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG; 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_INSTANCE;
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; 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_INSTANCES;
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME; select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE; select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.MUTEX_INSTANCES;
select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.PROCESSLIST;
select * from performance_schema.RWLOCK_INSTANCES; select * from performance_schema.RWLOCK_INSTANCES;
select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_OBJECTS;
select * from performance_schema.SETUP_TIMERS; select * from performance_schema.SETUP_TIMERS;
select * from performance_schema.THREADS;
show variables like "performance_schema%"; show variables like "performance_schema%";
Variable_name Value Variable_name Value
performance_schema ON performance_schema ON
......
...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES; ...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
select * from performance_schema.EVENTS_WAITS_CURRENT; select * from performance_schema.EVENTS_WAITS_CURRENT;
select * from performance_schema.EVENTS_WAITS_HISTORY; select * from performance_schema.EVENTS_WAITS_HISTORY;
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG; 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_INSTANCE;
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; 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_INSTANCES;
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME; select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE; select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.MUTEX_INSTANCES;
select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.PROCESSLIST;
select * from performance_schema.RWLOCK_INSTANCES; select * from performance_schema.RWLOCK_INSTANCES;
select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_OBJECTS;
select * from performance_schema.SETUP_TIMERS; select * from performance_schema.SETUP_TIMERS;
select * from performance_schema.THREADS;
show variables like "performance_schema%"; show variables like "performance_schema%";
Variable_name Value Variable_name Value
performance_schema ON performance_schema ON
......
...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES; ...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
select * from performance_schema.EVENTS_WAITS_CURRENT; select * from performance_schema.EVENTS_WAITS_CURRENT;
select * from performance_schema.EVENTS_WAITS_HISTORY; select * from performance_schema.EVENTS_WAITS_HISTORY;
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG; 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_INSTANCE;
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; 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_INSTANCES;
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME; select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE; select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.MUTEX_INSTANCES;
select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.PROCESSLIST;
select * from performance_schema.RWLOCK_INSTANCES; select * from performance_schema.RWLOCK_INSTANCES;
select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_OBJECTS;
select * from performance_schema.SETUP_TIMERS; select * from performance_schema.SETUP_TIMERS;
select * from performance_schema.THREADS;
show variables like "performance_schema%"; show variables like "performance_schema%";
Variable_name Value Variable_name Value
performance_schema ON performance_schema ON
......
...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES; ...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
select * from performance_schema.EVENTS_WAITS_CURRENT; select * from performance_schema.EVENTS_WAITS_CURRENT;
select * from performance_schema.EVENTS_WAITS_HISTORY; select * from performance_schema.EVENTS_WAITS_HISTORY;
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG; 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_INSTANCE;
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; 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_INSTANCES;
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME; select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE; select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.MUTEX_INSTANCES;
select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.PROCESSLIST;
select * from performance_schema.RWLOCK_INSTANCES; select * from performance_schema.RWLOCK_INSTANCES;
select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_OBJECTS;
select * from performance_schema.SETUP_TIMERS; select * from performance_schema.SETUP_TIMERS;
select * from performance_schema.THREADS;
show variables like "performance_schema%"; show variables like "performance_schema%";
Variable_name Value Variable_name Value
performance_schema ON performance_schema ON
......
...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES; ...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
select * from performance_schema.EVENTS_WAITS_CURRENT; select * from performance_schema.EVENTS_WAITS_CURRENT;
select * from performance_schema.EVENTS_WAITS_HISTORY; select * from performance_schema.EVENTS_WAITS_HISTORY;
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG; 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_INSTANCE;
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; 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_INSTANCES;
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME; select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE; select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.MUTEX_INSTANCES;
select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.PROCESSLIST;
select * from performance_schema.RWLOCK_INSTANCES; select * from performance_schema.RWLOCK_INSTANCES;
select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_OBJECTS;
select * from performance_schema.SETUP_TIMERS; select * from performance_schema.SETUP_TIMERS;
select * from performance_schema.THREADS;
show variables like "performance_schema%"; show variables like "performance_schema%";
Variable_name Value Variable_name Value
performance_schema ON performance_schema ON
......
...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES; ...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
select * from performance_schema.EVENTS_WAITS_CURRENT; select * from performance_schema.EVENTS_WAITS_CURRENT;
select * from performance_schema.EVENTS_WAITS_HISTORY; select * from performance_schema.EVENTS_WAITS_HISTORY;
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG; 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_INSTANCE;
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; 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_INSTANCES;
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME; select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE; select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.MUTEX_INSTANCES;
select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.PROCESSLIST;
select * from performance_schema.RWLOCK_INSTANCES; select * from performance_schema.RWLOCK_INSTANCES;
select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_OBJECTS;
select * from performance_schema.SETUP_TIMERS; select * from performance_schema.SETUP_TIMERS;
select * from performance_schema.THREADS;
show variables like "performance_schema%"; show variables like "performance_schema%";
Variable_name Value Variable_name Value
performance_schema ON performance_schema ON
......
...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES; ...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
select * from performance_schema.EVENTS_WAITS_CURRENT; select * from performance_schema.EVENTS_WAITS_CURRENT;
select * from performance_schema.EVENTS_WAITS_HISTORY; select * from performance_schema.EVENTS_WAITS_HISTORY;
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG; 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_INSTANCE;
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; 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_INSTANCES;
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME; select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE; select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.MUTEX_INSTANCES;
select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.PROCESSLIST;
select * from performance_schema.RWLOCK_INSTANCES; select * from performance_schema.RWLOCK_INSTANCES;
select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_OBJECTS;
select * from performance_schema.SETUP_TIMERS; select * from performance_schema.SETUP_TIMERS;
select * from performance_schema.THREADS;
show variables like "performance_schema%"; show variables like "performance_schema%";
Variable_name Value Variable_name Value
performance_schema ON performance_schema ON
......
...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES; ...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
select * from performance_schema.EVENTS_WAITS_CURRENT; select * from performance_schema.EVENTS_WAITS_CURRENT;
select * from performance_schema.EVENTS_WAITS_HISTORY; select * from performance_schema.EVENTS_WAITS_HISTORY;
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG; 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_INSTANCE;
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; 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_INSTANCES;
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME; select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE; select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.MUTEX_INSTANCES;
select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.PROCESSLIST;
select * from performance_schema.RWLOCK_INSTANCES; select * from performance_schema.RWLOCK_INSTANCES;
select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_OBJECTS;
select * from performance_schema.SETUP_TIMERS; select * from performance_schema.SETUP_TIMERS;
select * from performance_schema.THREADS;
show variables like "performance_schema%"; show variables like "performance_schema%";
Variable_name Value Variable_name Value
performance_schema ON performance_schema ON
......
...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES; ...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
select * from performance_schema.EVENTS_WAITS_CURRENT; select * from performance_schema.EVENTS_WAITS_CURRENT;
select * from performance_schema.EVENTS_WAITS_HISTORY; select * from performance_schema.EVENTS_WAITS_HISTORY;
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG; 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_INSTANCE;
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; 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_INSTANCES;
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME; select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE; select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.MUTEX_INSTANCES;
select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.PROCESSLIST;
select * from performance_schema.RWLOCK_INSTANCES; select * from performance_schema.RWLOCK_INSTANCES;
select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_OBJECTS;
select * from performance_schema.SETUP_TIMERS; select * from performance_schema.SETUP_TIMERS;
select * from performance_schema.THREADS;
show variables like "performance_schema%"; show variables like "performance_schema%";
Variable_name Value Variable_name Value
performance_schema ON performance_schema ON
...@@ -66,7 +65,7 @@ select variable_value > 0 from information_schema.global_status ...@@ -66,7 +65,7 @@ select variable_value > 0 from information_schema.global_status
where variable_name like 'PERFORMANCE_SCHEMA_THREAD_CLASSES_LOST'; where variable_name like 'PERFORMANCE_SCHEMA_THREAD_CLASSES_LOST';
variable_value > 0 variable_value > 0
1 1
select count(*) from performance_schema.PROCESSLIST; select count(*) from performance_schema.THREADS;
count(*) count(*)
0 0
show status like "performance_schema_thread_instances_lost"; show status like "performance_schema_thread_instances_lost";
......
...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES; ...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
select * from performance_schema.EVENTS_WAITS_CURRENT; select * from performance_schema.EVENTS_WAITS_CURRENT;
select * from performance_schema.EVENTS_WAITS_HISTORY; select * from performance_schema.EVENTS_WAITS_HISTORY;
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG; 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_INSTANCE;
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; 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_INSTANCES;
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME; select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE; select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.MUTEX_INSTANCES;
select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.PROCESSLIST;
select * from performance_schema.RWLOCK_INSTANCES; select * from performance_schema.RWLOCK_INSTANCES;
select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_OBJECTS;
select * from performance_schema.SETUP_TIMERS; select * from performance_schema.SETUP_TIMERS;
select * from performance_schema.THREADS;
show variables like "performance_schema%"; show variables like "performance_schema%";
Variable_name Value Variable_name Value
performance_schema ON performance_schema ON
...@@ -64,7 +63,7 @@ Performance_schema_thread_classes_lost 0 ...@@ -64,7 +63,7 @@ Performance_schema_thread_classes_lost 0
show variables like "performance_schema_max_thread_instances"; show variables like "performance_schema_max_thread_instances";
Variable_name Value Variable_name Value
performance_schema_max_thread_instances 0 performance_schema_max_thread_instances 0
select count(*) from performance_schema.PROCESSLIST; select count(*) from performance_schema.THREADS;
count(*) count(*)
0 0
select variable_value > 0 from information_schema.global_status select variable_value > 0 from information_schema.global_status
......
...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES; ...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
select * from performance_schema.EVENTS_WAITS_CURRENT; select * from performance_schema.EVENTS_WAITS_CURRENT;
select * from performance_schema.EVENTS_WAITS_HISTORY; select * from performance_schema.EVENTS_WAITS_HISTORY;
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG; 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_INSTANCE;
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; 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_INSTANCES;
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME; select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE; select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.MUTEX_INSTANCES;
select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.PROCESSLIST;
select * from performance_schema.RWLOCK_INSTANCES; select * from performance_schema.RWLOCK_INSTANCES;
select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_OBJECTS;
select * from performance_schema.SETUP_TIMERS; select * from performance_schema.SETUP_TIMERS;
select * from performance_schema.THREADS;
show variables like "performance_schema%"; show variables like "performance_schema%";
Variable_name Value Variable_name Value
performance_schema OFF performance_schema OFF
......
...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES; ...@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
select * from performance_schema.EVENTS_WAITS_CURRENT; select * from performance_schema.EVENTS_WAITS_CURRENT;
select * from performance_schema.EVENTS_WAITS_HISTORY; select * from performance_schema.EVENTS_WAITS_HISTORY;
select * from performance_schema.EVENTS_WAITS_HISTORY_LONG; 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_INSTANCE;
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; 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_INSTANCES;
select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME; select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
select * from performance_schema.FILE_SUMMARY_BY_INSTANCE; select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.MUTEX_INSTANCES;
select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.PERFORMANCE_TIMERS;
select * from performance_schema.PROCESSLIST;
select * from performance_schema.RWLOCK_INSTANCES; select * from performance_schema.RWLOCK_INSTANCES;
select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_CONSUMERS;
select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_INSTRUMENTS;
select * from performance_schema.SETUP_OBJECTS;
select * from performance_schema.SETUP_TIMERS; select * from performance_schema.SETUP_TIMERS;
select * from performance_schema.THREADS;
show variables like "performance_schema%"; show variables like "performance_schema%";
Variable_name Value Variable_name Value
performance_schema ON performance_schema ON
......
...@@ -31,7 +31,7 @@ update performance_schema.SETUP_CONSUMERS set enabled = 'NO'; ...@@ -31,7 +31,7 @@ update performance_schema.SETUP_CONSUMERS set enabled = 'NO';
# Cleanup statistics # Cleanup statistics
truncate table performance_schema.FILE_SUMMARY_BY_EVENT_NAME; truncate table performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
truncate table performance_schema.FILE_SUMMARY_BY_INSTANCE; 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_INSTANCE;
truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
...@@ -66,9 +66,9 @@ set @dump_all=FALSE; ...@@ -66,9 +66,9 @@ set @dump_all=FALSE;
# because doing so removes a row in FILE_SUMMARY_BY_INSTANCE. # because doing so removes a row in FILE_SUMMARY_BY_INSTANCE.
# Likewise: # 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) # 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) # MIN(EVENTS_WAITS_SUMMARY_BY_INSTANCE)
# There will be equality only when an instrument instance # There will be equality only when an instrument instance
# is not removed, which is next to impossible to predictably guarantee # is not removed, which is next to impossible to predictably guarantee
...@@ -80,9 +80,9 @@ set @dump_all=FALSE; ...@@ -80,9 +80,9 @@ set @dump_all=FALSE;
# Both cause a row to be deleted from EVENTS_WAITS_SUMMARY_BY_INSTANCE. # Both cause a row to be deleted from EVENTS_WAITS_SUMMARY_BY_INSTANCE.
# Likewise: # 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) # 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) # MIN(EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME)
# There will be equality only when no thread is removed, # There will be equality only when no thread is removed,
# that is if no thread disconnects, or no sub thread (for example insert # that is if no thread disconnects, or no sub thread (for example insert
...@@ -131,14 +131,14 @@ OR @dump_all; ...@@ -131,14 +131,14 @@ OR @dump_all;
--echo "Verifying waits aggregate consistency (instance)" --echo "Verifying waits aggregate consistency (instance)"
SELECT EVENT_NAME, e.SUM_TIMER_WAIT, SUM(i.SUM_TIMER_WAIT) 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) JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
GROUP BY EVENT_NAME GROUP BY EVENT_NAME
HAVING (e.SUM_TIMER_WAIT < SUM(i.SUM_TIMER_WAIT)) HAVING (e.SUM_TIMER_WAIT < SUM(i.SUM_TIMER_WAIT))
OR @dump_all; OR @dump_all;
SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(i.MIN_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) JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
GROUP BY EVENT_NAME GROUP BY EVENT_NAME
HAVING (e.MIN_TIMER_WAIT > MIN(i.MIN_TIMER_WAIT)) HAVING (e.MIN_TIMER_WAIT > MIN(i.MIN_TIMER_WAIT))
...@@ -146,7 +146,7 @@ AND (MIN(i.MIN_TIMER_WAIT) != 0) ...@@ -146,7 +146,7 @@ AND (MIN(i.MIN_TIMER_WAIT) != 0)
OR @dump_all; OR @dump_all;
SELECT EVENT_NAME, e.MAX_TIMER_WAIT, MAX(i.MAX_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) JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
GROUP BY EVENT_NAME GROUP BY EVENT_NAME
HAVING (e.MAX_TIMER_WAIT < MAX(i.MAX_TIMER_WAIT)) HAVING (e.MAX_TIMER_WAIT < MAX(i.MAX_TIMER_WAIT))
...@@ -155,7 +155,7 @@ OR @dump_all; ...@@ -155,7 +155,7 @@ OR @dump_all;
--echo "Verifying waits aggregate consistency (thread)" --echo "Verifying waits aggregate consistency (thread)"
SELECT EVENT_NAME, e.SUM_TIMER_WAIT, SUM(t.SUM_TIMER_WAIT) 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 JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
USING (EVENT_NAME) USING (EVENT_NAME)
GROUP BY EVENT_NAME GROUP BY EVENT_NAME
...@@ -163,7 +163,7 @@ HAVING (e.SUM_TIMER_WAIT < SUM(t.SUM_TIMER_WAIT)) ...@@ -163,7 +163,7 @@ HAVING (e.SUM_TIMER_WAIT < SUM(t.SUM_TIMER_WAIT))
OR @dump_all; OR @dump_all;
SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(t.MIN_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 JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
USING (EVENT_NAME) USING (EVENT_NAME)
GROUP BY EVENT_NAME GROUP BY EVENT_NAME
...@@ -172,7 +172,7 @@ AND (MIN(t.MIN_TIMER_WAIT) != 0) ...@@ -172,7 +172,7 @@ AND (MIN(t.MIN_TIMER_WAIT) != 0)
OR @dump_all; OR @dump_all;
SELECT EVENT_NAME, e.MAX_TIMER_WAIT, MAX(t.MAX_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 JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
USING (EVENT_NAME) USING (EVENT_NAME)
GROUP BY EVENT_NAME GROUP BY EVENT_NAME
......
...@@ -19,13 +19,16 @@ ...@@ -19,13 +19,16 @@
--source include/have_perfschema.inc --source include/have_perfschema.inc
-- error ER_DBACCESS_DENIED_ERROR -- 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 -- 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 -- 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);
# 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 @@ ...@@ -19,14 +19,14 @@
--source include/have_perfschema.inc --source include/have_perfschema.inc
-- error ER_DBACCESS_DENIED_ERROR -- 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 -- error ER_WRONG_PERFSCHEMA_USAGE
truncate table performance_schema.PROCESSLIST; truncate table performance_schema.THREADS;
-- error ER_DBACCESS_DENIED_ERROR -- 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 -- 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 @@ ...@@ -19,44 +19,44 @@
--source include/have_perfschema.inc --source include/have_perfschema.inc
--replace_column 1 # 2 # 3 # 4 # 5 # 6 # --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; 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'; 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 --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, set event_name='FOO', count_star=1, sum_timer_wait=2, min_timer_wait=3,
avg_timer_wait=4, max_timer_wait=5; 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 --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; 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 --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"; 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 --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; 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 --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 -- 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; 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 -- 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; UNLOCK TABLES;
# 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 @@ ...@@ -19,43 +19,43 @@
--source include/have_perfschema.inc --source include/have_perfschema.inc
--replace_column 1 # 2 # 3 # --replace_column 1 # 2 # 3 #
select * from performance_schema.PROCESSLIST select * from performance_schema.THREADS
where name like 'Thread/%' limit 1; where name like 'Thread/%' limit 1;
select * from performance_schema.PROCESSLIST select * from performance_schema.THREADS
where name='FOO'; where name='FOO';
--replace_result '\'processlist' '\'PROCESSLIST' --replace_result '\'threads' '\'THREADS'
--error ER_TABLEACCESS_DENIED_ERROR --error ER_TABLEACCESS_DENIED_ERROR
insert into performance_schema.PROCESSLIST insert into performance_schema.THREADS
set name='FOO', thread_id=1, id=2; set name='FOO', thread_id=1, id=2;
--replace_result '\'processlist' '\'PROCESSLIST' --replace_result '\'threads' '\'THREADS'
--error ER_TABLEACCESS_DENIED_ERROR --error ER_TABLEACCESS_DENIED_ERROR
update performance_schema.PROCESSLIST update performance_schema.THREADS
set thread_id=12; set thread_id=12;
--replace_result '\'processlist' '\'PROCESSLIST' --replace_result '\'threads' '\'THREADS'
--error ER_TABLEACCESS_DENIED_ERROR --error ER_TABLEACCESS_DENIED_ERROR
update performance_schema.PROCESSLIST update performance_schema.THREADS
set thread_id=12 where name like "FOO"; set thread_id=12 where name like "FOO";
--replace_result '\'processlist' '\'PROCESSLIST' --replace_result '\'threads' '\'THREADS'
--error ER_TABLEACCESS_DENIED_ERROR --error ER_TABLEACCESS_DENIED_ERROR
delete from performance_schema.PROCESSLIST delete from performance_schema.THREADS
where id=1; where id=1;
--replace_result '\'processlist' '\'PROCESSLIST' --replace_result '\'threads' '\'THREADS'
--error ER_TABLEACCESS_DENIED_ERROR --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 -- error ER_TABLEACCESS_DENIED_ERROR
LOCK TABLES performance_schema.PROCESSLIST READ; LOCK TABLES performance_schema.THREADS READ;
UNLOCK TABLES; UNLOCK TABLES;
--replace_result '\'processlist' '\'PROCESSLIST' --replace_result '\'threads' '\'THREADS'
-- error ER_TABLEACCESS_DENIED_ERROR -- error ER_TABLEACCESS_DENIED_ERROR
LOCK TABLES performance_schema.PROCESSLIST WRITE; LOCK TABLES performance_schema.THREADS WRITE;
UNLOCK TABLES; UNLOCK TABLES;
...@@ -144,7 +144,7 @@ WHERE FILE_NAME LIKE CONCAT('%', @@tmpdir, '%') ORDER BY NULL; ...@@ -144,7 +144,7 @@ WHERE FILE_NAME LIKE CONCAT('%', @@tmpdir, '%') ORDER BY NULL;
# #
--disable_result_log --disable_result_log
SELECT EVENT_NAME, COUNT_STAR, AVG_TIMER_WAIT, SUM_TIMER_WAIT 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 WHERE COUNT_STAR > 0
ORDER BY SUM_TIMER_WAIT DESC ORDER BY SUM_TIMER_WAIT DESC
LIMIT 10; LIMIT 10;
...@@ -158,7 +158,7 @@ LIMIT 10; ...@@ -158,7 +158,7 @@ LIMIT 10;
SELECT i.user, SUM(TIMER_WAIT) SUM_WAIT SELECT i.user, SUM(TIMER_WAIT) SUM_WAIT
# ((TIME_TO_SEC(TIMEDIFF(NOW(), i.startup_time)) * 1000) / SUM(TIMER_WAIT)) * 100 WAIT_PERCENTAGE # ((TIME_TO_SEC(TIMEDIFF(NOW(), i.startup_time)) * 1000) / SUM(TIMER_WAIT)) * 100 WAIT_PERCENTAGE
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h 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) LEFT JOIN information_schema.PROCESSLIST i USING (ID)
GROUP BY i.user GROUP BY i.user
ORDER BY SUM_WAIT DESC ORDER BY SUM_WAIT DESC
...@@ -171,7 +171,7 @@ LIMIT 20; ...@@ -171,7 +171,7 @@ LIMIT 20;
--disable_result_log --disable_result_log
SELECT h.EVENT_NAME, SUM(h.TIMER_WAIT) TOTAL_WAIT SELECT h.EVENT_NAME, SUM(h.TIMER_WAIT) TOTAL_WAIT
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h 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 WHERE p.ID = 1
GROUP BY h.EVENT_NAME GROUP BY h.EVENT_NAME
HAVING TOTAL_WAIT > 0; HAVING TOTAL_WAIT > 0;
...@@ -184,7 +184,7 @@ HAVING TOTAL_WAIT > 0; ...@@ -184,7 +184,7 @@ HAVING TOTAL_WAIT > 0;
--disable_result_log --disable_result_log
SELECT i.user, h.operation, SUM(NUMBER_OF_BYTES) bytes SELECT i.user, h.operation, SUM(NUMBER_OF_BYTES) bytes
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h 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) LEFT JOIN information_schema.PROCESSLIST i USING (ID)
GROUP BY i.user, h.operation GROUP BY i.user, h.operation
HAVING BYTES > 0 HAVING BYTES > 0
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
--disable_result_log --disable_result_log
SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
WHERE THREAD_ID IN WHERE THREAD_ID IN
(SELECT THREAD_ID FROM performance_schema.PROCESSLIST) (SELECT THREAD_ID FROM performance_schema.THREADS)
AND EVENT_NAME IN AND EVENT_NAME IN
(SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS (SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS
WHERE NAME LIKE "wait/synch/%") WHERE NAME LIKE "wait/synch/%")
......
...@@ -45,10 +45,10 @@ show variables like "performance_schema_max_thread%"; ...@@ -45,10 +45,10 @@ show variables like "performance_schema_max_thread%";
# Verification : in this main thread # Verification : in this main thread
select count(*) from performance_schema.PROCESSLIST select count(*) from performance_schema.THREADS
where name like "thread/sql/main"; where name like "thread/sql/main";
select count(*) from performance_schema.PROCESSLIST select count(*) from performance_schema.THREADS
where name like "thread/sql/OneConnection"; where name like "thread/sql/OneConnection";
select event_name, operation, select event_name, operation,
......
...@@ -29,18 +29,17 @@ show create table COND_INSTANCES; ...@@ -29,18 +29,17 @@ show create table COND_INSTANCES;
show create table EVENTS_WAITS_CURRENT; show create table EVENTS_WAITS_CURRENT;
show create table EVENTS_WAITS_HISTORY; show create table EVENTS_WAITS_HISTORY;
show create table EVENTS_WAITS_HISTORY_LONG; 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_INSTANCE;
show create table EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; 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_INSTANCES;
show create table FILE_SUMMARY_BY_EVENT_NAME; show create table FILE_SUMMARY_BY_EVENT_NAME;
show create table FILE_SUMMARY_BY_INSTANCE; show create table FILE_SUMMARY_BY_INSTANCE;
show create table MUTEX_INSTANCES; show create table MUTEX_INSTANCES;
show create table PERFORMANCE_TIMERS; show create table PERFORMANCE_TIMERS;
show create table PROCESSLIST;
show create table RWLOCK_INSTANCES; show create table RWLOCK_INSTANCES;
show create table SETUP_CONSUMERS; show create table SETUP_CONSUMERS;
show create table SETUP_INSTRUMENTS; show create table SETUP_INSTRUMENTS;
show create table SETUP_OBJECTS;
show create table SETUP_TIMERS; show create table SETUP_TIMERS;
show create table THREADS;
...@@ -45,7 +45,7 @@ LIMIT 1; ...@@ -45,7 +45,7 @@ LIMIT 1;
--replace_column 1 [EVENT_ID] --replace_column 1 [EVENT_ID]
SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
WHERE THREAD_ID IN WHERE THREAD_ID IN
(SELECT THREAD_ID FROM performance_schema.PROCESSLIST) (SELECT THREAD_ID FROM performance_schema.THREADS)
AND EVENT_NAME IN AND EVENT_NAME IN
(SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS (SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS
WHERE NAME LIKE "wait/synch/%") WHERE NAME LIKE "wait/synch/%")
...@@ -138,7 +138,7 @@ delimiter |; ...@@ -138,7 +138,7 @@ delimiter |;
CREATE PROCEDURE t_ps_proc(IN tid INT, OUT pid INT) CREATE PROCEDURE t_ps_proc(IN tid INT, OUT pid INT)
BEGIN BEGIN
SELECT id FROM performance_schema.PROCESSLIST SELECT id FROM performance_schema.THREADS
WHERE THREAD_ID = tid INTO pid; WHERE THREAD_ID = tid INTO pid;
END; END;
...@@ -157,7 +157,7 @@ delimiter |; ...@@ -157,7 +157,7 @@ delimiter |;
CREATE FUNCTION t_ps_func(tid INT) RETURNS int CREATE FUNCTION t_ps_func(tid INT) RETURNS int
BEGIN BEGIN
return (SELECT id FROM performance_schema.PROCESSLIST return (SELECT id FROM performance_schema.THREADS
WHERE THREAD_ID = tid); WHERE THREAD_ID = tid);
END; END;
......
...@@ -31,7 +31,7 @@ select variable_value > 0 from information_schema.global_status ...@@ -31,7 +31,7 @@ select variable_value > 0 from information_schema.global_status
where variable_name like 'PERFORMANCE_SCHEMA_THREAD_CLASSES_LOST'; where variable_name like 'PERFORMANCE_SCHEMA_THREAD_CLASSES_LOST';
# Expect no instances # Expect no instances
select count(*) from performance_schema.PROCESSLIST; select count(*) from performance_schema.THREADS;
# Expect no instances lost # Expect no instances lost
show status like "performance_schema_thread_instances_lost"; show status like "performance_schema_thread_instances_lost";
......
...@@ -33,7 +33,7 @@ show status like "performance_schema_thread_classes_lost"; ...@@ -33,7 +33,7 @@ show status like "performance_schema_thread_classes_lost";
# Expect no instances # Expect no instances
show variables like "performance_schema_max_thread_instances"; show variables like "performance_schema_max_thread_instances";
select count(*) from performance_schema.PROCESSLIST; select count(*) from performance_schema.THREADS;
# Expect instances lost # Expect instances lost
select variable_value > 0 from information_schema.global_status select variable_value > 0 from information_schema.global_status
......
...@@ -30,14 +30,14 @@ connect (con1, localhost, root, , ); ...@@ -30,14 +30,14 @@ connect (con1, localhost, root, , );
let $con1_ID=`select connection_id()`; 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()`; where ID = connection_id()`;
connect (con2, localhost, root, , ); connect (con2, localhost, root, , );
let $con2_ID=`select connection_id()`; 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()`; where ID = connection_id()`;
connection default; connection default;
...@@ -58,7 +58,7 @@ connect (con3, localhost, root, , ); ...@@ -58,7 +58,7 @@ connect (con3, localhost, root, , );
let $con3_ID=`select connection_id()`; 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()`; where ID = connection_id()`;
disconnect con3; disconnect con3;
...@@ -82,14 +82,14 @@ connect (con1, localhost, root, , ); ...@@ -82,14 +82,14 @@ connect (con1, localhost, root, , );
let $con1_ID=`select connection_id()`; 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()`; where ID = connection_id()`;
connect (con2, localhost, root, , ); connect (con2, localhost, root, , );
let $con2_ID=`select connection_id()`; 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()`; where ID = connection_id()`;
connection default; connection default;
...@@ -108,7 +108,7 @@ connect (con3, localhost, root, , ); ...@@ -108,7 +108,7 @@ connect (con3, localhost, root, , );
let $con3_ID=`select connection_id()`; 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()`; where ID = connection_id()`;
disconnect con3; disconnect con3;
......
...@@ -241,26 +241,6 @@ PREPARE stmt FROM @str; ...@@ -241,26 +241,6 @@ PREPARE stmt FROM @str;
EXECUTE stmt; EXECUTE stmt;
DROP PREPARE 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 -- TABLE EVENTS_WAITS_SUMMARY_BY_INSTANCE
-- --
...@@ -303,6 +283,26 @@ PREPARE stmt FROM @str; ...@@ -303,6 +283,26 @@ PREPARE stmt FROM @str;
EXECUTE stmt; EXECUTE stmt;
DROP PREPARE 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 -- TABLE FILE_INSTANCES
-- --
...@@ -394,23 +394,6 @@ PREPARE stmt FROM @str; ...@@ -394,23 +394,6 @@ PREPARE stmt FROM @str;
EXECUTE stmt; EXECUTE stmt;
DROP PREPARE 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 -- TABLE RWLOCK_INSTANCES
-- --
...@@ -463,19 +446,15 @@ EXECUTE stmt; ...@@ -463,19 +446,15 @@ EXECUTE stmt;
DROP PREPARE stmt; DROP PREPARE stmt;
-- --
-- TABLE SETUP_OBJECTS -- TABLE SETUP_TIMERS
-- --
SET @l1="CREATE TABLE performance_schema.SETUP_OBJECTS("; SET @l1="CREATE TABLE performance_schema.SETUP_TIMERS(";
SET @l2="OBJECT_TYPE VARCHAR(64),"; SET @l2="NAME VARCHAR(64) not null,";
SET @l3="OBJECT_SCHEMA VARCHAR(64),"; SET @l3="TIMER_NAME ENUM ('CYCLE', 'NANOSECOND', 'MICROSECOND', 'MILLISECOND', 'TICK') not null";
SET @l4="OBJECT_NAME VARCHAR(64),"; SET @l4=")ENGINE=PERFORMANCE_SCHEMA;";
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 @cmd=concat(@l1,@l2,@l3,@l4);
SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0');
PREPARE stmt FROM @str; PREPARE stmt FROM @str;
...@@ -483,15 +462,16 @@ EXECUTE stmt; ...@@ -483,15 +462,16 @@ EXECUTE stmt;
DROP PREPARE stmt; DROP PREPARE stmt;
-- --
-- TABLE SETUP_TIMERS -- TABLE THREADS
-- --
SET @l1="CREATE TABLE performance_schema.SETUP_TIMERS("; SET @l1="CREATE TABLE performance_schema.THREADS(";
SET @l2="NAME VARCHAR(64) not null,"; SET @l2="THREAD_ID INTEGER not null,";
SET @l3="TIMER_NAME ENUM ('CYCLE', 'NANOSECOND', 'MICROSECOND', 'MILLISECOND', 'TICK') not null"; SET @l3="ID INTEGER not null,";
SET @l4=")ENGINE=PERFORMANCE_SCHEMA;"; SET @l4="NAME VARCHAR(64) not null";
SET @l5=")ENGINE=PERFORMANCE_SCHEMA;";
SET @cmd=concat(@l1,@l2,@l3,@l4); SET @cmd=concat(@l1,@l2,@l3,@l4,@l5);
SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0');
PREPARE stmt FROM @str; PREPARE stmt FROM @str;
......
...@@ -38,15 +38,15 @@ SET(PERFSCHEMA_SOURCES ha_perfschema.h ...@@ -38,15 +38,15 @@ SET(PERFSCHEMA_SOURCES ha_perfschema.h
table_all_instr.h table_all_instr.h
table_events_waits.h table_events_waits.h
table_events_waits_summary.h table_events_waits_summary.h
table_ews_global_by_event_name.h
table_file_instances.h table_file_instances.h
table_file_summary.h table_file_summary.h
table_performance_timers.h table_performance_timers.h
table_processlist.h
table_setup_consumers.h table_setup_consumers.h
table_setup_instruments.h table_setup_instruments.h
table_setup_objects.h
table_setup_timers.h table_setup_timers.h
table_sync_instances.h table_sync_instances.h
table_threads.h
ha_perfschema.cc ha_perfschema.cc
pfs.cc pfs.cc
pfs_column_values.cc pfs_column_values.cc
...@@ -60,15 +60,15 @@ SET(PERFSCHEMA_SOURCES ha_perfschema.h ...@@ -60,15 +60,15 @@ SET(PERFSCHEMA_SOURCES ha_perfschema.h
table_all_instr.cc table_all_instr.cc
table_events_waits.cc table_events_waits.cc
table_events_waits_summary.cc table_events_waits_summary.cc
table_ews_global_by_event_name.cc
table_file_instances.cc table_file_instances.cc
table_file_summary.cc table_file_summary.cc
table_performance_timers.cc table_performance_timers.cc
table_processlist.cc
table_setup_consumers.cc table_setup_consumers.cc
table_setup_instruments.cc table_setup_instruments.cc
table_setup_objects.cc
table_setup_timers.cc table_setup_timers.cc
table_sync_instances.cc table_sync_instances.cc
table_threads.cc
pfs_atomic.cc pfs_atomic.cc
pfs_check.cc pfs_check.cc
) )
......
...@@ -39,12 +39,12 @@ noinst_HEADERS = ha_perfschema.h pfs_engine_table.h pfs.h pfs_server.h \ ...@@ -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_instruments.h table_performance_timers.h \
table_setup_timers.h \ table_setup_timers.h \
table_setup_consumers.h table_events_waits.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_sync_instances.h \
table_events_waits_summary.h pfs_stat.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_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 \ PSE_SOURCES = ha_perfschema.cc pfs_engine_table.cc pfs.cc pfs_server.cc \
pfs_global.cc pfs_instr_class.cc pfs_instr.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 \ ...@@ -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_instruments.cc table_performance_timers.cc \
table_setup_timers.cc \ table_setup_timers.cc \
table_setup_consumers.cc table_events_waits.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_sync_instances.cc \
table_events_waits_summary.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_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 EXTRA_LIBRARIES = libperfschema.a
noinst_LIBRARIES = @plugin_perfschema_static_target@ noinst_LIBRARIES = @plugin_perfschema_static_target@
......
...@@ -23,11 +23,11 @@ ...@@ -23,11 +23,11 @@
#include "table_events_waits.h" #include "table_events_waits.h"
#include "table_setup_consumers.h" #include "table_setup_consumers.h"
#include "table_setup_instruments.h" #include "table_setup_instruments.h"
#include "table_setup_objects.h"
#include "table_setup_timers.h" #include "table_setup_timers.h"
#include "table_performance_timers.h" #include "table_performance_timers.h"
#include "table_processlist.h" #include "table_threads.h"
#include "table_events_waits_summary.h" #include "table_events_waits_summary.h"
#include "table_ews_global_by_event_name.h"
#include "table_sync_instances.h" #include "table_sync_instances.h"
#include "table_file_instances.h" #include "table_file_instances.h"
#include "table_file_summary.h" #include "table_file_summary.h"
...@@ -52,13 +52,12 @@ static PFS_engine_table_share *all_shares[]= ...@@ -52,13 +52,12 @@ static PFS_engine_table_share *all_shares[]=
&table_events_waits_history_long::m_share, &table_events_waits_history_long::m_share,
&table_setup_consumers::m_share, &table_setup_consumers::m_share,
&table_setup_instruments::m_share, &table_setup_instruments::m_share,
&table_setup_objects::m_share,
&table_setup_timers::m_share, &table_setup_timers::m_share,
&table_performance_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_thread_by_event_name::m_share,
&table_events_waits_summary_by_event_name::m_share,
&table_events_waits_summary_by_instance::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_event_name::m_share,
&table_file_summary_by_instance::m_share, &table_file_summary_by_instance::m_share,
&table_mutex_instances::m_share, &table_mutex_instances::m_share,
......
...@@ -338,144 +338,6 @@ int table_events_waits_summary_by_thread_by_event_name ...@@ -338,144 +338,6 @@ int table_events_waits_summary_by_thread_by_event_name
return 0; 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; THR_LOCK table_events_waits_summary_by_instance::m_table_lock;
static const TABLE_FIELD_TYPE ews_by_instance_field_types[]= static const TABLE_FIELD_TYPE ews_by_instance_field_types[]=
......
...@@ -144,58 +144,6 @@ private: ...@@ -144,58 +144,6 @@ private:
pos_events_waits_summary_by_thread_by_event_name m_next_pos; 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. */ /** A row of PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_BY_INSTANCE. */
struct row_events_waits_summary_by_instance struct row_events_waits_summary_by_instance
{ {
......
/* 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;
}
/* Copyright (C) 2008-2009 Sun Microsystems, Inc /* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
...@@ -10,115 +10,78 @@ ...@@ -10,115 +10,78 @@
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software Foundation,
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
#ifndef TABLE_SETUP_OBJECTS_H #ifndef TABLE_EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME_H
#define TABLE_SETUP_OBJECTS_H #define TABLE_EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME_H
/** /**
@file storage/perfschema/table_setup_objects.h @file storage/perfschema/table_ews_global_by_event_name.h
Table SETUP_OBJECTS (declarations). Table EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME (declarations).
*/ */
#include "pfs_instr_class.h" #include "pfs_column_types.h"
#include "pfs_engine_table.h" #include "pfs_engine_table.h"
#include "pfs_instr_class.h"
#include "pfs_instr.h"
#include "table_all_instr.h"
/** /**
@addtogroup Performance_schema_tables @addtogroup Performance_schema_tables
@{ @{
*/ */
/** A row of PERFORMANCE_SCHEMA.SETUP_OBJECTS. */ /** A row of PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME. */
struct row_setup_objects struct row_ews_global_by_event_name
{ {
/** Column SCHEMA_NAME. */ /** Column EVENT_NAME. */
const char *m_schema_name; const char *m_name;
/** Length in bytes of @c m_schema_name. */ /** Length in bytes of @c m_name. */
uint m_schema_name_length; uint m_name_length;
/** Column OBJECT_NAME. */ /** Column COUNT_STAR. */
const char *m_object_name; ulonglong m_count;
/** Length in bytes of @c m_object_name. */ /** Column SUM_TIMER_WAIT. */
uint m_object_name_length; ulonglong m_sum;
/** Column ENABLED. */ /** Column MIN_TIMER_WAIT. */
bool *m_enabled_ptr; ulonglong m_min;
/** Column TIMED. */ /** Column AVG_TIMER_WAIT. */
bool *m_timed_ptr; ulonglong m_avg;
/** Column AGGREGATED. */ /** Column MAX_TIMER_WAIT. */
bool *m_aggregated_ptr; ulonglong m_max;
}; };
/** Position of a cursor on PERFORMANCE_SCHEMA.SETUP_OBJECTS. */ /** Table PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME. */
struct pos_setup_objects : public PFS_double_index, class table_ews_global_by_event_name : public table_all_instr_class
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: public:
/** Table share. */ /** Table share */
static PFS_engine_table_share m_share; static PFS_engine_table_share m_share;
static PFS_engine_table* create(); static PFS_engine_table* create();
static int write_row(TABLE *table, unsigned char *buf, Field **fields);
static int delete_all_rows(); static int delete_all_rows();
virtual int rnd_next();
virtual int rnd_pos(const void *pos);
virtual void reset_position(void);
protected: protected:
virtual void make_instr_row(PFS_instr_class *klass);
virtual int read_row_values(TABLE *table, virtual int read_row_values(TABLE *table,
unsigned char *buf, unsigned char *buf,
Field **fields, Field **fields,
bool read_all); bool read_all);
virtual int update_row_values(TABLE *table, table_ews_global_by_event_name();
const unsigned char *old_buf,
unsigned char *new_buf,
Field **fields);
table_setup_objects();
public: public:
~table_setup_objects() ~table_ews_global_by_event_name()
{} {}
private: private:
void make_row(PFS_table_share *share);
/** Table share lock. */ /** Table share lock. */
static THR_LOCK m_table_lock; static THR_LOCK m_table_lock;
/** Fields definition. */ /** Fields definition. */
static TABLE_FIELD_DEF m_field_def; static TABLE_FIELD_DEF m_field_def;
/** Current row. */ /** Current row. */
row_setup_objects m_row; row_ews_global_by_event_name 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;
}; };
/** @} */ /** @} */
......
/* 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;
}
...@@ -14,17 +14,17 @@ ...@@ -14,17 +14,17 @@
51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
/** /**
@file storage/perfschema/table_processlist.cc @file storage/perfschema/table_threads.cc
Table PROCESSLIST (implementation). Table THREADS (implementation).
*/ */
#include "my_global.h" #include "my_global.h"
#include "my_pthread.h" #include "my_pthread.h"
#include "table_processlist.h" #include "table_threads.h"
#include "pfs_instr_class.h" #include "pfs_instr_class.h"
#include "pfs_instr.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[]= static const TABLE_FIELD_TYPE field_types[]=
{ {
...@@ -46,15 +46,15 @@ static const TABLE_FIELD_TYPE field_types[]= ...@@ -46,15 +46,15 @@ static const TABLE_FIELD_TYPE field_types[]=
}; };
TABLE_FIELD_DEF TABLE_FIELD_DEF
table_processlist::m_field_def= table_threads::m_field_def=
{ 3, field_types }; { 3, field_types };
PFS_engine_table_share 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, &pfs_readonly_acl,
&table_processlist::create, &table_threads::create,
NULL, /* write_row */ NULL, /* write_row */
NULL, /* delete_all_rows */ NULL, /* delete_all_rows */
1000, /* records */ 1000, /* records */
...@@ -64,23 +64,23 @@ table_processlist::m_share= ...@@ -64,23 +64,23 @@ table_processlist::m_share=
false /* checked */ 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), : PFS_engine_table(&m_share, &m_pos),
m_row_exists(false), m_pos(0), m_next_pos(0) 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_pos.m_index= 0;
m_next_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; PFS_thread *pfs;
...@@ -100,7 +100,7 @@ int table_processlist::rnd_next(void) ...@@ -100,7 +100,7 @@ int table_processlist::rnd_next(void)
return HA_ERR_END_OF_FILE; 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; PFS_thread *pfs;
...@@ -116,7 +116,7 @@ int table_processlist::rnd_pos(const void *pos) ...@@ -116,7 +116,7 @@ int table_processlist::rnd_pos(const void *pos)
return HA_ERR_RECORD_DELETED; 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_lock lock;
PFS_thread_class *safe_class; PFS_thread_class *safe_class;
...@@ -139,10 +139,10 @@ void table_processlist::make_row(PFS_thread *pfs) ...@@ -139,10 +139,10 @@ void table_processlist::make_row(PFS_thread *pfs)
m_row_exists= true; m_row_exists= true;
} }
int table_processlist::read_row_values(TABLE *table, int table_threads::read_row_values(TABLE *table,
unsigned char *, unsigned char *,
Field **fields, Field **fields,
bool read_all) bool read_all)
{ {
Field *f; Field *f;
......
...@@ -13,12 +13,12 @@ ...@@ -13,12 +13,12 @@
along with this program; if not, write to the Free Software Foundation, along with this program; if not, write to the Free Software Foundation,
51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
#ifndef TABLE_PROCESSIST_H #ifndef TABLE_THREADS_H
#define TABLE_PROCESSIST_H #define TABLE_THREADS_H
/** /**
@file storage/perfschema/table_processlist.h @file storage/perfschema/table_threads.h
Table PROCESSLIST (declarations). Table THREADS (declarations).
*/ */
#include "pfs_column_types.h" #include "pfs_column_types.h"
...@@ -31,8 +31,8 @@ struct PFS_thread; ...@@ -31,8 +31,8 @@ struct PFS_thread;
@{ @{
*/ */
/** A row of PERFORMANCE_SCHEMA.PROCESSLIST. */ /** A row of PERFORMANCE_SCHEMA.THREADS. */
struct row_processlist struct row_threads
{ {
/** Column THREAD_ID. */ /** Column THREAD_ID. */
ulong m_thread_internal_id; ulong m_thread_internal_id;
...@@ -44,8 +44,8 @@ struct row_processlist ...@@ -44,8 +44,8 @@ struct row_processlist
uint m_name_length; uint m_name_length;
}; };
/** Table PERFORMANCE_SCHEMA.PROCESSLIST. */ /** Table PERFORMANCE_SCHEMA.THREADS. */
class table_processlist : public PFS_engine_table class table_threads : public PFS_engine_table
{ {
public: public:
/** Table share. */ /** Table share. */
...@@ -63,10 +63,10 @@ protected: ...@@ -63,10 +63,10 @@ protected:
bool read_all); bool read_all);
protected: protected:
table_processlist(); table_threads();
public: public:
~table_processlist() ~table_threads()
{} {}
private: private:
...@@ -78,7 +78,7 @@ private: ...@@ -78,7 +78,7 @@ private:
static TABLE_FIELD_DEF m_field_def; static TABLE_FIELD_DEF m_field_def;
/** Current row. */ /** Current row. */
row_processlist m_row; row_threads m_row;
/** True is the current row exists. */ /** True is the current row exists. */
bool m_row_exists; bool m_row_exists;
/** Current position. */ /** Current position. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment