Чи є простий запит, який зайняв би> 2 секунди, щоб я міг перевірити повільний реєстратор запитів?
Я шукаю щось на кшталт загального рекурсивного чи ітеративного твердження.
Чи є простий запит, який зайняв би> 2 секунди, щоб я міг перевірити повільний реєстратор запитів?
Я шукаю щось на кшталт загального рекурсивного чи ітеративного твердження.
Відповіді:
Простий запит:
SELECT SLEEP(2);
Ви хочете його повторити?
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)
Крім того, якщо ви просто хочете перевірити свій slow_query_log, змініть " long_query_time " на 0 (щоб увімкнути всі запити):
SET long_query_time=0;
SELECT sleep(2)
Нічого не додає до уповільненого журналу - але SET GLOBAL long_query_time=0
дав мені швидкий вхід для тестування. Дякую.
Ось досить жахливий запит. Це декартовий продукт, який використовує приєднання в стилі non-ansi.
use master
select * from sys.objects, sys.indexes
WAITFOR DELAY '00:00:02'