Schreiben Sie eine langsame Anfrage, um die langsame Abfrageprotokollierung zu testen?
Frage
Gibt es eine einfache Abfrage, die> 2 Sekunden dauern würde, damit ich den langsamen Abfrage -Logger testen kann?
Ich suche so etwas wie eine generische rekursive oder iterative Aussage.
Lösung
Eine einfache Frage wäre:
SELECT SLEEP(2);
Sie möchten es iterieren?
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)
Alternativ, wenn Sie nur Ihre Slow_query_log testen möchten, ändern Sie sich.long_query_time'bis 0 (um alle Abfragen zu protokollieren):
SET long_query_time=0;
Andere Tipps
Hier ist eine ziemlich schreckliche Frage. Es ist ein kartesisches Produkt, das nicht in Ansi-Style-Join verwendet wird.
use master
select * from sys.objects, sys.indexes
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange