32 lines
890 B
SQL
32 lines
890 B
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`slowLog_prune`()
|
|
BEGIN
|
|
/**
|
|
* Prunes MySQL slow query log table deleting all records older than one week.
|
|
*/
|
|
DECLARE vSlowQueryLog INT DEFAULT @@slow_query_log;
|
|
DECLARE vSqlLogBin INT DEFAULT @@SESSION.sql_log_bin;
|
|
DECLARE vLogExists BOOL;
|
|
|
|
SET sql_log_bin = OFF;
|
|
SET GLOBAL slow_query_log = OFF;
|
|
|
|
SELECT COUNT(*) > 0 INTO vLogExists
|
|
FROM information_schema.TABLES
|
|
WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME = 'slow_log';
|
|
|
|
IF vLogExists THEN
|
|
DROP TEMPORARY TABLE IF EXISTS mysql.slow_log_temp;
|
|
RENAME TABLE mysql.slow_log TO mysql.slow_log_temp;
|
|
END IF;
|
|
|
|
DELETE FROM mysql.slow_log_temp
|
|
WHERE start_time < TIMESTAMPADD(WEEK, -1, util.VN_NOW());
|
|
|
|
RENAME TABLE mysql.slow_log_temp TO mysql.slow_log;
|
|
|
|
SET GLOBAL slow_query_log = vSlowQueryLog;
|
|
SET sql_log_bin = vSqlLogBin;
|
|
END$$
|
|
DELIMITER ;
|