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


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.