スロークエリロギングをテストするスロークエリを作成しますか?


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'
ベンBrocka

select sleep(2)は私が探していた答えです。long_query_timeを自分で設定することはできません。
デビッドルバウアー

短くて甘いものはいつもきれいです。素敵なストアドプロシージャも。+1 !!!
RolandoMySQLDBA

SELECT sleep(2)スローログには何も追加しなかった-しかし、SET GLOBAL long_query_time=0テストに私に迅速な入力を与えました。ありがとう。
ジェスパーグランローレンス14

0

これは非常に恐ろしいクエリです。これは、非ANSIスタイルの結合を使用したデカルト積です。

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

きちんとした...しかし、私はそれがmysqlだとは思わない。
デレクダウニー

おっとっと。ごめんなさい。私はそれがMySQL用であることに気がつきませんでした。
datagod
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.