¿Escribir una consulta lenta para probar el registro de consulta lenta?
Pregunta
¿Existe una consulta simple que tomaría> 2 segundos para que pueda probar el Lloy Consulty Logger?
Estoy buscando algo como una declaración genérica recursiva o iterativa.
Solución
Una consulta simple sería:
SELECT SLEEP(2);
¿Quieres iterarlo?
DELIMITER $$
DROP FUNCTION IF EXISTS `iterateSleep` $$
CREATE FUNCTION `iterateSleep` (iterations INT)
RETURNS INT DETERMINISTIC
BEGIN
DECLARE remainder INT;
SET remainder = iterations;
read_loop: LOOP
IF remainder=0 THEN
LEAVE read_loop;
END IF;
SELECT SLEEP(2) INTO @test;
SET remainder = remainder - 1;
END LOOP;
RETURN iterations;
END $$
DELIMITER ;
-- TO TEST IT OUT
mysql> SELECT iterateSleep(2);
+-----------------+
| iterateSleep(2) |
+-----------------+
| 2 |
+-----------------+
1 row in set (4.01 sec)
Alternativamente, si solo desea probar su lento_query_log, cambie 'long_query_time'a 0 (para registrar todas las consultas):
SET long_query_time=0;
Otros consejos
Aquí hay una consulta bastante horrible. Es un producto cartesiano, que utiliza unión de estilo no Ansi.
use master
select * from sys.objects, sys.indexes
Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange