มีแบบสอบถามง่ายๆที่จะใช้เวลา> 2 วินาทีเพื่อให้ฉันสามารถทดสอบ logger แบบสอบถามช้า?
ฉันกำลังมองหาสิ่งที่ต้องการคำสั่งซ้ำทั่วไปหรือซ้ำแล้วซ้ำอีก
มีแบบสอบถามง่ายๆที่จะใช้เวลา> 2 วินาทีเพื่อให้ฉันสามารถทดสอบ logger แบบสอบถามช้า?
ฉันกำลังมองหาสิ่งที่ต้องการคำสั่งซ้ำทั่วไปหรือซ้ำแล้วซ้ำอีก
คำตอบ:
แบบสอบถามง่ายๆจะเป็น:
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;
SELECT sleep(2)
ไม่ได้เพิ่มอะไรให้ช้าบันทึก - แต่SET GLOBAL long_query_time=0
ให้ฉันป้อนข้อมูลที่รวดเร็วในการทดสอบ ขอบคุณ
นี่เป็นข้อความค้นหาที่น่ากลัว มันเป็นผลิตภัณฑ์คาร์ทีเซียนโดยใช้รูปแบบที่ไม่ใช่ ansi เข้าร่วม
use master
select * from sys.objects, sys.indexes
WAITFOR DELAY '00:00:02'