Có một truy vấn đơn giản sẽ mất> 2 giây để tôi có thể kiểm tra bộ ghi truy vấn chậm không?
Tôi đang tìm kiếm một cái gì đó giống như một tuyên bố đệ quy chung hoặc lặp đi lặp lại.
Có một truy vấn đơn giản sẽ mất> 2 giây để tôi có thể kiểm tra bộ ghi truy vấn chậm không?
Tôi đang tìm kiếm một cái gì đó giống như một tuyên bố đệ quy chung hoặc lặp đi lặp lại.
Câu trả lời:
Một truy vấn đơn giản sẽ là:
SELECT SLEEP(2);
Bạn muốn lặp lại nó?
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)
Ngoài ra, nếu bạn chỉ muốn kiểm tra Slow_query_log của mình, hãy thay đổi ' long_query_time ' thành 0 (để ghi nhật ký tất cả các truy vấn):
SET long_query_time=0;
SELECT sleep(2)
không thêm bất cứ điều gì vào nhật ký chậm - nhưng SET GLOBAL long_query_time=0
đã cho tôi đầu vào nhanh để kiểm tra. Cảm ơn.
Đây là một truy vấn khá khủng khiếp. Nó là một sản phẩm của Cartesian, sử dụng kiểu nối không ansi.
use master
select * from sys.objects, sys.indexes
WAITFOR DELAY '00:00:02'