Existe-t-il une requête simple qui prendrait plus de 2 secondes pour que je puisse tester l'enregistreur de requêtes lent?
Je recherche quelque chose comme une déclaration générique récursive ou itérative.
Existe-t-il une requête simple qui prendrait plus de 2 secondes pour que je puisse tester l'enregistreur de requêtes lent?
Je recherche quelque chose comme une déclaration générique récursive ou itérative.
Réponses:
Une requête simple serait:
SELECT SLEEP(2);Vous voulez l'itérer?
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)
Alternativement, si vous souhaitez simplement tester votre slow_query_log, remplacez ' long_query_time ' par 0 (pour enregistrer toutes les requêtes):
SET long_query_time=0;SELECT sleep(2)n'a pas ajouté quoi que ce soit au journal lent - mais le SET GLOBAL long_query_time=0m'a donné une entrée rapide pour tester. Merci.
                    Voici une requête assez horrible. C'est un produit cartésien, utilisant une jointure de style non-ansi.
use master
select * from sys.objects, sys.indexes
WAITFOR DELAY '00:00:02'