느린 쿼리 로깅을 테스트하기 위해 느린 쿼리를 작성 하시겠습니까?


14

느린 쿼리 로거를 테스트 할 수 있도록> 2 초가 걸리는 간단한 쿼리가 있습니까?

일반적인 재귀 또는 반복문과 같은 것을 찾고 있습니다.

답변:


22

간단한 쿼리는 다음과 같습니다.

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;

참고로 SQL Server와 동등한 기능은 다음과 같습니다.WAITFOR DELAY '00:00:02'
— Ben Brocka

select sleep (2)는 내가 찾던 답변입니다. long_query_time을 직접 설정할 수 없습니다.
— David LeBauer

짧고 달콤한 것은 항상 깔끔합니다. 좋은 저장 절차도 있습니다. +1 !!!
— RolandoMySQLDBA

는 SELECT sleep(2)느린 로그에 아무것도 추가하지 않은 -하지만이 SET GLOBAL long_query_time=0테스트에 나에게 빠른 입력을했다. 감사.
— Jesper Grann Laursen '12

0

여기 꽤 끔찍한 질문이 있습니다. 비 Ansi 스타일 조인을 사용하는 데카르트 제품입니다.

use master
select * from sys.objects, sys.indexes

깔끔한 ...하지만 그것이 mysql이라고 생각하지 않습니다.
— 데릭 다우니

죄송합니다. 죄송합니다. 나는 그것이 MySQL을위한 것임을 알지 못했습니다.
— datagod
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.