ऐसे परिदृश्य में जहां एक तालिका एक कतार के रूप में कार्य करती है, इसे कॉन्फ़िगर करना और इसे एक तरह से क्वेरी करना महत्वपूर्ण है जो एकाधिक ग्राहकों को कतार आइटमों को एक साथ संसाधित करने की अनुमति देता है।
UPDLOCK और ROWLOCK के साथ निराशावादी पंक्ति लॉकिंग का उपयोग करते समय, केवल एक कार्यकर्ता ही ऐसा कर सकता है लॉक प्राप्त करें और एक पंक्ति संसाधित करें। इस समस्या को हल करने और समवर्ती प्रसंस्करण को सक्षम करने के लिए, निम्नलिखित दृष्टिकोण पर विचार करें:
आउटपुट क्लॉज का उपयोग करके कतार कार्यान्वयन
आउटपुट क्लॉज एक पंक्ति को परमाणु रूप से पुनर्प्राप्त और संशोधित करने के लिए एक तंत्र प्रदान करता है . आउटपुट क्लॉज का उपयोग करके कतार को लागू करने का तरीका यहां बताया गया है:
with CTE as ( SELECT TOP(1) COMMAND, PROCESSED FROM TABLE WITH (READPAST) WHERE PROCESSED = 0) UPDATE CTE SET PROCESSED = 1 OUTPUT INSERTED.*;
यह क्वेरी परमाणु रूप से निम्नलिखित चरणों का पालन करती है:
क्लस्टर्ड इंडेक्स ऑप्टिमाइज़ेशन
प्रदर्शन को और अधिक अनुकूलित करने के लिए, PROCESSED कॉलम पर एक क्लस्टर्ड इंडेक्स बनाना महत्वपूर्ण है। यह सुनिश्चित करता है कि डेटा प्रसंस्करण के क्रम में संग्रहीत किया जाता है। &&&]इष्टतम थ्रूपुट के लिए, ऊपर वर्णित डीक्यू ऑपरेशन के अलावा अन्य तरीकों का उपयोग करके कतार तालिका से पूछताछ करने से बचना आवश्यक है। अतिरिक्त उद्देश्यों के लिए तालिका में झाँकने या उपयोग करने का प्रयास करने से गतिरोध और प्रदर्शन में गिरावट आ सकती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3