धीमी क्वेरी लॉगिंग का परीक्षण करने के लिए एक धीमी क्वेरी लिखें?


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 सर्वर के बराबर एक सिडेनोट हैWAITFOR DELAY '00:00:02'
— Ben Brocka

चुनिंदा नींद (2) वह उत्तर है जिसकी मुझे तलाश थी; मैं खुद को long_query_time सेट नहीं कर सकता।
— डेविड लेबॉयर

छोटा और मीठा हमेशा साफ-सुथरा होता है। साथ ही अच्छा संग्रहित प्रक्रिया। +1 !!!
— रोलैंडमाइसीडीडीबीए

SELECT sleep(2)धीमी गति से लॉग में कुछ भी जोड़ नहीं था - लेकिन SET GLOBAL long_query_time=0मुझे परीक्षण के लिए त्वरित इनपुट दे दी है। धन्यवाद।
— जेसपर ग्रेन लॉरेन

0

यहाँ एक बहुत ही भयानक क्वेरी है। यह एक कार्टेशियन उत्पाद है, जिसमें गैर-एएनएसआई शैली शामिल है।

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

साफ ... लेकिन मुझे नहीं लगता कि यह mysql है।
— डेरेक डाउनी

उफ़। माफ़ करना। मैंने देखा कि यह MySQL के लिए नहीं था।
— डेटागोड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.