PostgreSQL में, आप pg_sleep()
. का उपयोग कर सकते हैं कुछ सेकंड के लिए निष्पादन में देरी करने के लिए कार्य करता है।
यह वर्तमान सत्र की प्रक्रिया को तब तक सुप्त रखता है जब तक कि निर्दिष्ट संख्या में सेकंड समाप्त नहीं हो जाते। यह MySQL के sleep()
. की तरह काम करता है फ़ंक्शन, और TSQL का waitfor
. भी SQL सर्वर में स्टेटमेंट।
pg_sleep()
फ़ंक्शन एक दोहरी सटीकता . स्वीकार करता है तर्क, ताकि आप भिन्नात्मक-सेकंड विलंब भी निर्दिष्ट कर सकें।
नींद में देरी कम से कम होगी जब तक निर्दिष्ट है। हालांकि, यह सर्वर लोड जैसे कारकों के साथ-साथ आपके प्लेटफ़ॉर्म के स्लीप इंटरवल के प्रभावी समाधान के आधार पर लंबा हो सकता है।
सिंटैक्स
वाक्य रचना काफी सरल है:
pg_sleep(seconds)
जहां seconds
एक दोहरी सटीकता . है मान जो निर्दिष्ट करता है कि प्रक्रिया जारी रहने से पहले कितने सेकंड/आंशिक सेकंड बीतने चाहिए।
उदाहरण
इसके उपयोग को प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
\x
SELECT
clock_timestamp(),
pg_sleep(1),
clock_timestamp(),
pg_sleep(1),
clock_timestamp();
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
clock_timestamp | 2020-06-28 13:46:53.808072+10 pg_sleep | clock_timestamp | 2020-06-28 13:46:54.870423+10 pg_sleep | clock_timestamp | 2020-06-28 13:46:55.938278+10
मैंने clock_timestamp()
का उपयोग किया है इस उदाहरण में, क्योंकि यह कथन निष्पादन के दौरान बदलता है। यह हमें स्टेटमेंट के आगे बढ़ने पर अपडेट किए गए मानों को देखने की अनुमति देता है।
मैंने इस उदाहरण में विस्तारित प्रदर्शन (कभी-कभी "ऊर्ध्वाधर आउटपुट" के रूप में संदर्भित) का उपयोग किया ताकि परिणाम देखना आसान हो सके।
आप \x
. का उपयोग करके psql में विस्तारित डिस्प्ले को टॉगल कर सकते हैं ।
आंशिक सेकंड
जैसा कि उल्लेख किया गया है, यदि आवश्यक हो तो आप भिन्नात्मक-सेकंड विलंब निर्दिष्ट कर सकते हैं।
SELECT
clock_timestamp(),
pg_sleep(.5),
clock_timestamp(),
pg_sleep(.5),
clock_timestamp();
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
clock_timestamp | 2020-06-28 15:03:52.496211+10 pg_sleep | clock_timestamp | 2020-06-28 15:03:53.041063+10 pg_sleep | clock_timestamp | 2020-06-28 15:03:53.553291+10
नकारात्मक मान
नकारात्मक मानों के परिणामस्वरूप निष्पादन में कोई विलंब नहीं होगा।
SELECT
clock_timestamp(),
pg_sleep(-1),
clock_timestamp(),
pg_sleep(-1),
clock_timestamp();
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
clock_timestamp | 2020-06-29 09:03:19.056681+10 pg_sleep | clock_timestamp | 2020-06-29 09:03:19.056682+10 pg_sleep | clock_timestamp | 2020-06-29 09:03:19.056683+10