mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 14:02:32 +01:00
98 lines
3 KiB
Text
98 lines
3 KiB
Text
|
UPDATE performance_schema.SETUP_INSTRUMENTS SET enabled = 'YES', timed = 'YES';
|
||
|
DROP TABLE IF EXISTS t1;
|
||
|
CREATE TABLE t1 (id INT PRIMARY KEY, b CHAR(100) DEFAULT 'initial value')
|
||
|
ENGINE=MyISAM;
|
||
|
INSERT INTO t1 (id) VALUES (1), (2), (3), (4), (5), (6), (7), (8);
|
||
|
SELECT OPERATION, SUM(NUMBER_OF_BYTES) AS TOTAL
|
||
|
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG
|
||
|
GROUP BY OPERATION
|
||
|
HAVING TOTAL IS NOT NULL
|
||
|
ORDER BY OPERATION
|
||
|
LIMIT 1;
|
||
|
OPERATION TOTAL
|
||
|
chsize [NUM_BYTES]
|
||
|
SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
|
||
|
WHERE THREAD_ID IN
|
||
|
(SELECT THREAD_ID FROM performance_schema.PROCESSLIST)
|
||
|
AND EVENT_NAME IN
|
||
|
(SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS
|
||
|
WHERE NAME LIKE "wait/synch/%")
|
||
|
LIMIT 1;
|
||
|
EVENT_ID
|
||
|
[EVENT_ID]
|
||
|
SELECT DISTINCT EVENT_ID
|
||
|
FROM performance_schema.EVENTS_WAITS_CURRENT
|
||
|
JOIN performance_schema.EVENTS_WAITS_HISTORY USING (EVENT_ID)
|
||
|
JOIN performance_schema.EVENTS_WAITS_HISTORY_LONG USING (EVENT_ID)
|
||
|
ORDER BY EVENT_ID
|
||
|
LIMIT 1;
|
||
|
EVENT_ID
|
||
|
[EVENT_ID]
|
||
|
SELECT t1.THREAD_ID, t2.EVENT_ID, t3.EVENT_NAME, t4.TIMER_WAIT
|
||
|
FROM performance_schema.EVENTS_WAITS_HISTORY t1
|
||
|
JOIN performance_schema.EVENTS_WAITS_HISTORY t2 USING (EVENT_ID)
|
||
|
JOIN performance_schema.EVENTS_WAITS_HISTORY t3 ON (t2.THREAD_ID = t3.THREAD_ID)
|
||
|
JOIN performance_schema.EVENTS_WAITS_HISTORY t4 ON (t3.EVENT_NAME = t4.EVENT_NAME)
|
||
|
ORDER BY t1.EVENT_ID, t2.EVENT_ID
|
||
|
LIMIT 5;
|
||
|
THREAD_ID EVENT_ID EVENT_NAME TIMER_WAIT
|
||
|
[THREAD_ID] [EVENT_ID] [EVENT_NAME] [TIMER_WAIT]
|
||
|
[THREAD_ID] [EVENT_ID] [EVENT_NAME] [TIMER_WAIT]
|
||
|
[THREAD_ID] [EVENT_ID] [EVENT_NAME] [TIMER_WAIT]
|
||
|
[THREAD_ID] [EVENT_ID] [EVENT_NAME] [TIMER_WAIT]
|
||
|
[THREAD_ID] [EVENT_ID] [EVENT_NAME] [TIMER_WAIT]
|
||
|
SELECT THREAD_ID, EVENT_ID FROM (
|
||
|
SELECT THREAD_ID, EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
|
||
|
UNION
|
||
|
SELECT THREAD_ID, EVENT_ID FROM performance_schema.EVENTS_WAITS_HISTORY
|
||
|
UNION
|
||
|
SELECT THREAD_ID, EVENT_ID FROM performance_schema.EVENTS_WAITS_HISTORY_LONG
|
||
|
) t1 ORDER BY THREAD_ID, EVENT_ID
|
||
|
LIMIT 5;
|
||
|
THREAD_ID EVENT_ID
|
||
|
[THREAD_ID] [EVENT_ID]
|
||
|
[THREAD_ID] [EVENT_ID]
|
||
|
[THREAD_ID] [EVENT_ID]
|
||
|
[THREAD_ID] [EVENT_ID]
|
||
|
[THREAD_ID] [EVENT_ID]
|
||
|
CREATE EVENT t_ps_event
|
||
|
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 SECOND
|
||
|
DO SELECT DISTINCT EVENT_ID
|
||
|
FROM performance_schema.EVENTS_WAITS_CURRENT
|
||
|
JOIN performance_schema.EVENTS_WAITS_HISTORY USING (EVENT_ID)
|
||
|
ORDER BY EVENT_ID
|
||
|
LIMIT 1;
|
||
|
ALTER TABLE t1 ADD COLUMN c INT;
|
||
|
CREATE TRIGGER t_ps_trigger BEFORE INSERT ON t1
|
||
|
FOR EACH ROW BEGIN
|
||
|
SET NEW.c = (SELECT MAX(EVENT_ID)
|
||
|
FROM performance_schema.EVENTS_WAITS_CURRENT);
|
||
|
END;
|
||
|
|
|
||
|
INSERT INTO t1 (id) VALUES (11), (12), (13);
|
||
|
SELECT id, c FROM t1 WHERE id > 10 ORDER BY c;
|
||
|
id c
|
||
|
11 [EVENT_ID]
|
||
|
12 [EVENT_ID]
|
||
|
13 [EVENT_ID]
|
||
|
DROP TRIGGER t_ps_trigger;
|
||
|
CREATE PROCEDURE t_ps_proc(IN tid INT, OUT pid INT)
|
||
|
BEGIN
|
||
|
SELECT id FROM performance_schema.PROCESSLIST
|
||
|
WHERE THREAD_ID = tid INTO pid;
|
||
|
END;
|
||
|
|
|
||
|
CALL t_ps_proc(0, @p_id);
|
||
|
CREATE FUNCTION t_ps_func(tid INT) RETURNS int
|
||
|
BEGIN
|
||
|
return (SELECT id FROM performance_schema.PROCESSLIST
|
||
|
WHERE THREAD_ID = tid);
|
||
|
END;
|
||
|
|
|
||
|
SELECT t_ps_func(0) = @p_id;
|
||
|
t_ps_func(0) = @p_id
|
||
|
1
|
||
|
DROP PROCEDURE t_ps_proc;
|
||
|
DROP FUNCTION t_ps_func;
|
||
|
DROP TABLE t1;
|